Javascript延迟事件

标签 javascript debouncing

我有一个函数handleScroll,当窗口的滚动位置改变时需要调用它。这是它的代码

$(window).scroll(handleScroll);

但问题是上面的代码最终过于频繁地调用handleScroll。如何修改上述代码,使 handleScroll 仅在用户停止滚动 200 毫秒后调用?

最佳答案

var timeoutHandle;

$(window).scroll(function(e) {
    if (timeoutHandle) {
        clearTimeout(timeoutHandle);
    }
    timeoutHandle = setTimeout(function() {
        handleScroll(e);
        timeoutHandle = null;
    }, 200);
});

关于Javascript延迟事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642300/

相关文章:

ruby-on-rails - 如何创建类似于 javascript throttle/debounce 函数的 Rails/Ruby 方法

javascript - jQuery 中的去抖动函数

javascript - React - 没有依赖项数组的 useMemo 与空数组

javascript - Zen Cart 产品 div 上的可点击链接

javascript - Angular2 ng2-popover hide() 不工作

reactjs - 在其中设置状态时去抖动不起作用

javascript - Angularjs debounce 正在清除我的 radio 输入

javascript - 如果再次调用函数,则取消超时/计时器 --- debounce 函数

javascript - 指定了 itemprop 属性,但该元素不是任何项目的属性

Javascript正则表达式替换精确字符