Javascript 如何调节和消除函数的抖动?

Javascript 如何调节和消除函数的抖动?,javascript,jquery,Javascript,Jquery,我想知道是否有一种方法可以对$(window.resize(或任何其他)调用的函数进行节流和去盎司。我尝试只调节油门,但问题是,如果我在下一次执行该功能(水平滚动apear)之前停止调整大小,我将使用车身宽度的100%。因此,我需要对其进行去抖动处理,使舒尔it在调整尺寸后也能执行 如果你能想出别的办法,请告诉我 我通常使用setTimeout来完成此操作: // Timer handle; 0 = invalid handle var scrollTimer = 0; $("window").

我想知道是否有一种方法可以对
$(window.resize
(或任何其他)调用的函数进行节流和去盎司。我尝试只调节油门,但问题是,如果我在下一次执行该功能(水平滚动apear)之前停止调整大小,我将使用车身宽度的100%。因此,我需要对其进行去抖动处理,使舒尔it在调整尺寸后也能执行


如果你能想出别的办法,请告诉我

我通常使用
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
被调用。

我通常使用
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
被调用