我写了一个简单的脚本,不是故意的:
var prevscroll = 0;
$(document).scroll(function(){
var currscroll = $(document).scrollTop();
if(currscroll > prevscroll){
$("header").toggle();
prevscroll = currscroll;
}
if(currscroll < prevscroll){
$("header").toggle();
prevscroll = currscroll;
}
});
当页面向下滚动时,它意味着隐藏标题,只有在它向上滚动时才显示它,但是当我向下滚动它的轻弹时,它会发生什么。 :|
我想我可能只是发现了一个愚蠢的错误!因为普通卷轴不断增加,所以它会继续闪烁。
答案 0 :(得分:2)
你不能按照你自己的方式使用toggle()
因为滚动事件被调用了很多次,所以如果它被调用多次而你的if
语句具有相同的值,那么它将会每次拨打.toggle()
时闪烁,然后关闭,然后再打开,然后关闭。您需要在满足条件时明确隐藏或显示。
我并不完全遵循你要对prevscroll
做的事情,但也许这就是你想要的:
var prevscroll = 0;
$(document).scroll(function(){
var currscroll = $(document).scrollTop();
if(currscroll > prevscroll){
$("header").hide();
prevscroll = currscroll;
}
if(currscroll < prevscroll){
$("header").show();
prevscroll = currscroll;
}
});
这会在您进一步向下滚动时隐藏标题,并在您开始向上滚动时立即显示标题。