如何为下一个滚动事件设置延迟

时间:2015-06-26 23:38:50

标签: javascript jquery

滚动后,我需要为下一个滚动事件设置一秒延迟。我怎样才能做到这一点?

$('body').scrollTop(100);
$(window).scroll(function () {
    var BS = $('body').scrollTop();

    if(BS > 101){
        /* Disable scroll for 1 sec Delay */
    }else if(BS < 98) {
        /* Disable scroll for 1 sec Delay */
    }

    $('body').scrollTop(100);
});

像这样page   - 滚动后,鼠标滚轮无法工作一秒钟。

1 个答案:

答案 0 :(得分:0)

您可以将计时器设置为暂时禁用您的功能:

var
    scrollEnabled = true;

$('body').scrollTop(100);

function disableScroll() {
    // temporarily disable action
    scrollEnabled = false;

    // set a timer to enable again it 1 second from now
    setTimeout(function() {
        scrollEnabled = true;
    }, 1000);
}

$(window).scroll(function () {
    var bs;

    if (scrollEnabled) {
        bs = $('body').scrollTop();

        if (bs > 101 || bs < 98) {
            disableScroll();
        }

        $('body').scrollTop(100);
    }
});