我有一个函数handleScroll
,当窗口的滚动位置发生变化时需要调用它。这是代码
$(window).scroll(handleScroll);
但问题是上述代码最终调用handleScroll
过于频繁。如何修改上述代码,以便仅在用户停止滚动 200 毫秒后才调用 handleScroll?
我有一个函数handleScroll
,当窗口的滚动位置发生变化时需要调用它。这是代码
$(window).scroll(handleScroll);
但问题是上述代码最终调用handleScroll
过于频繁。如何修改上述代码,以便仅在用户停止滚动 200 毫秒后才调用 handleScroll?
var timeoutHandle;
$(window).scroll(function(e) {
if (timeoutHandle) {
clearTimeout(timeoutHandle);
}
timeoutHandle = setTimeout(function() {
handleScroll(e);
timeoutHandle = null;
}, 200);
});
使用underscorejs库,它可以很简单
var debounceid = _.debounce(handleScroll, 200);
$(window).resize(debounceid);