滚动时jquery fadeTo(),向下时淡出但在返回时不淡入

时间:2014-10-14 17:19:18

标签: javascript jquery html css

我一直试图在向下滚动时淡出淡出,并在向后滚动到页面顶部时淡入淡出。向下滚动似乎工作正常,但是当我回去时,它并没有消失。我尝试使用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

1 个答案:

答案 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)
    }
});

检查Demo Fiddle


修改

为什么你的代码不起作用? ...因为你总是得到一个小于50的值:

splashTop = 8 always
-  
$(window).scrollTop() = more than 0

然后结果总是负数或8为最大值,你永远不会有超过8的数字,而你的其他条件也没用。