我使用以下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语句?
发布于 2016-10-30 18:44:17
-更新--一种解决问题的方法,load曾经是设置一个全局变量,并在您像这样运行之前检查它.
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
块,然后尝试向上滚动again.Just查看。
如果您想在传递完200之后使用"#hero-area"
元素,那么您想要去掉您的else
块,将代码放在if
中,而不必担心其余的代码。
希望这能有所帮助。如果没有回答你的问题,请告诉我。
https://stackoverflow.com/questions/40334827
复制