2

我正在尝试使用underscore.js的函数_.debounce()但我无法正确执行。

我正在尝试消除我的窗口滚动,如下所示,但我很困惑。

$(document).ready(function () {
 $(window).scroll(function (event) {
    var scrollCounter = $(this).scrollTop();
    if ( scrollCounter > 0 ) { //do stuff }
    else { //do stuff }
 });
});
4

1 回答 1

2

从文档和示例中:

var lazyLayout = _.debounce(calculateLayout, 300);
$(window).resize(lazyLayout);

你可以重构你的调用来去抖它,如下所示:

function scrollHandler() {
    var scrollCounter = $(this).scrollTop();
    if ( scrollCounter > 0 ) { /* do stuff /* }
    else { /* do stuff */ }
};

$(document).ready(function () {

    var debouncedScroll = _.debounce(scrollHandler, 50);
    $(window).scroll(debouncedScroll);

});

更新:工作 jsfiddle: https ://jsfiddle.net/z635f7ys/

于 2016-12-20T13:15:22.497 回答