12345678910111213141516171819202122232425 |
- export function throttledDebounce(callback, maxDebounceTimes, debounceDelay) {
- let debounceTimeout;
- let timesDebounced = 0;
- return function () {
- if (timesDebounced == maxDebounceTimes) {
- clearTimeout(debounceTimeout);
- timesDebounced = 0;
- callback();
- return;
- }
- clearTimeout(debounceTimeout);
- timesDebounced++;
- debounceTimeout = setTimeout(() => {
- timesDebounced = 0;
- callback();
- }, debounceDelay);
- };
- };
- export function isElementVisible(element) {
- return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
- }
|