我正在尝试在到达某个滚动位置时向下滚动页面。当用户向下滚动一点(100px)时,jquery应该向下滚动。
$(window).on('scroll', function() {
var scrollPos = $(this).scrollTop();
if (scrollPos >= 100) {
$('html, body').animate({ scrollTop: 300 }, 50);
}
});
代码会滚动,但会停留在滚动位置300
上。什么是实现这一目标的好方法而不会卡住?
答案 0 :(得分:2)
因为在每个下一个卷轴上,scrollPos >= 100
始终为真。您必须检查用户是否第一次超过100。
您可以在此fiddle
中查看以下代码// just rename it to anything you want
var hasBeenOver100Before = false;
$(window).on('scroll', function(e) {
var scrollPos = $(this).scrollTop();
if (scrollPos >= 100 && !hasBeenOver100Before) {
// so that on next scroll, code knows this part already executed
hasBeenOver100Before = true;
$('html, body').animate({ scrollTop: 300 }, 50);
}
// reset it to false, so that next time user passes to
// 100 scrolltop, the code above works again
if (scrollPos <= 100) hasBeenOver100Before = false;
});
答案 1 :(得分:0)
Becouse总是scrollPos是&gt; =到100 ...
scrollPos&gt; = 100?是的,将其滚动到300,是scrollPos&gt; = 100?是的,scoll到300,是....