我一直试图在向下滚动时淡出淡出,并在向后滚动到页面顶部时淡入淡出。向下滚动似乎工作正常,但是当我回去时,它并没有消失。我尝试使用fadeIn和FadeOut而不是fadeTo但没有得到正确的行为
代码实际上非常简单:
var splashTop = $('.splash-container').offset().top;
$(window).scroll(function () {
if ((splashTop - $(window).scrollTop()) < 50) {
$('.splash-container').stop().fadeTo("slow", 0);
} else {
$('.splash-container').stop().fadeTo("fast", 1);
}
});
这是jsFiddle示例: jsFiddle
答案 0 :(得分:1)
如果你只是需要检查scroll
是否在顶部,那么你不需要检查Splash的位置,试试:
$(window).scroll(function () {
if ($(window).scrollTop() > 0) {
$('.splash-container').stop().fadeTo("slow", 0);
console.log('p')
} else {
$('.splash-container').stop().fadeTo("fast", 1);
console.log(box1Top)
}
});
修改强>
为什么你的代码不起作用? ...因为你总是得到一个小于50的值:
splashTop = 8 always
-
$(window).scrollTop() = more than 0
然后结果总是负数或8
为最大值,你永远不会有超过8的数字,而你的其他条件也没用。