我的问题是,在使用触摸板快速向下滚动后,窗口在300px之后正确跳到顶部,但是之后浏览器仍然向下滚动。
这是我的问题的一个例子 this answer
我已经尝试过了,但是没有用
https://codepen.io/anon/pen/XoMExW
$(window).scroll(function(){
if( $(window).scrollTop() >= 300 ){
$(window).scrollTop(0);
}
});
答案 0 :(得分:0)
您可以做的是在每个滚动事件之后添加一个setTimeout
。对于每个滚动事件,您都将首先清除在上一个事件中创建的滚动事件,然后立即重新创建一个新的滚动事件。这将一直运行,直到您到达上一个滚动事件为止,然后在该上一个滚动事件期间,将触发setTimeout
的回调并运行您的代码:
var isScrolling;
$(window).scroll(function() {
window.clearTimeout(isScrolling);
isScrolling = setTimeout(function() {
if ($(window).scrollTop() >= 300) {
$(window).scrollTop(0);
}
}, 100);
});