滚动到顶部后停止向下滚动

时间:2018-12-21 18:45:30

标签: javascript jquery html scroll

我的问题是,在使用触摸板快速向下滚动后,窗口在300px之后正确跳到顶部,但是之后浏览器仍然向下滚动。

这是我的问题的一个例子 this answer

我已经尝试过了,但是没有用

https://codepen.io/anon/pen/XoMExW

$(window).scroll(function(){
if( $(window).scrollTop() >= 300 ){
   $(window).scrollTop(0);
}
});

1 个答案:

答案 0 :(得分:0)

您可以做的是在每个滚动事件之后添加一个setTimeout。对于每个滚动事件,您都将首先清除在上一个事件中创建的滚动事件,然后立即重新创建一个新的滚动事件。这将一直运行,直到您到达上一个滚动事件为止,然后在该上一个滚动事件期间,将触发setTimeout的回调并运行您的代码:

var isScrolling;

$(window).scroll(function() {
    window.clearTimeout(isScrolling);
    isScrolling = setTimeout(function() {
        if ($(window).scrollTop() >= 300) {
            $(window).scrollTop(0);
        }
    }, 100);
});