JQUERY scrollTo让我在执行后滚动

时间:2016-10-30 23:39:14

标签: javascript jquery html scrollto

我使用以下JQUERY在滚动时隐藏元素,然后滚动回页面顶部以显示新元素:

$(window).bind('scroll', function() {
 if ($(window).scrollTop() > 200) {
 }
 else {
    $("#hero-area").slideUp(1300);
    $(".timeline").show(2000);
    $("body").animate({ scrollTop: 0 }, "slow");
 return false;
 }
});

问题是,它滚动回到页面顶部就好了,但在执行后它拒绝让我继续滚动页面。我试过回复假,但没有运气。也许是因为我使用IF语句?

1 个答案:

答案 0 :(得分:1)

- Update-- 你的问题的一种方法,加载一次就是设置一个全局变量并在你运行它之前检查它......

    var canRun = true; //declare a global variable
    $(function () { //on page load
        $(window).bind('scroll', function () {
            if ($(window).scrollTop() > 200) {
                if (canRun) {
                    //Do your animation
                    //set the global to false
                    canRun = !canRun;
                }
            }
        });
    });

如果$(window).scrollTop() = 0它将转到else块,然后再尝试向上滚动。只是looooooooping。

如果您希望在传递200之后使用"#hero-area"元素,那么您想要删除else块,请将该代码放入if内,不要担心其余部分。

希望有所帮助。如果这没有回答你的问题,请告诉我。