Jquery在达到滚动位置后向下滚动

时间:2017-03-09 16:28:20

标签: jquery

我正在尝试在到达某个滚动位置时向下滚动页面。当用户向下滚动一点(100px)时,jquery应该向下滚动。

    $(window).on('scroll', function() {
        var scrollPos = $(this).scrollTop();
        if (scrollPos >= 100) {
            $('html, body').animate({ scrollTop: 300 }, 50);
        } 
    }); 

代码会滚动,但会停留在滚动位置300上。什么是实现这一目标的好方法而不会卡住?

2 个答案:

答案 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,是....