4

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

$(window).scroll(handleScroll);

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

4

2 回答 2

2
var timeoutHandle;

$(window).scroll(function(e) {
    if (timeoutHandle) {
        clearTimeout(timeoutHandle);
    }
    timeoutHandle = setTimeout(function() {
        handleScroll(e);
        timeoutHandle = null;
    }, 200);
});
于 2012-07-25T03:38:08.900 回答
0

使用underscorejs库,它可以很简单

var debounceid = _.debounce(handleScroll, 200);
$(window).resize(debounceid);
于 2012-07-25T03:38:07.740 回答