我想知道是否有一种方法来限制和去抖$( window ).resize
(或任何其他)调用的函数。我试过只调节但问题是因为我使用了100%的身体宽度,如果我在下一次执行功能之前停止调整大小,水平滚动apear。因此,在调整大小之后,我需要去除它以使其成为执行者。
如果你能想到另一种方式,请告诉我!
答案 0 :(得分:2)
我通常使用setTimeout
完成此操作:
// Timer handle; 0 = invalid handle
var scrollTimer = 0;
$("window").on("scroll", function() {
// Clear any pending work (it's okay to call with 0 [invalid handle], but add a guard if you like)
clearTimeout(scrollTimer);
// Schedule callback in X milliseconds
setTimeout(scrollHandler, 10); // 10 = 10ms, adjust as you like
});
function scrollHandler() {
scrollTimer = 0;
// ...
}
如果在该时间间隔内出现新的滚动,则之前对scrollHandler
的调用永远不会发生,我们会安排一个新的滚动。在最后一个之后的X毫秒,scrollHandler
被调用。