滚动时隐藏或显示菜单栏

时间:2014-01-17 15:27:03

标签: jquery animation jquery-animate

我在$('body').scrollTop() > 45

时设置div的动画

当用户向上滚动时,我需要为同一个div设置动画。我尝试了这个代码,第一个 if 有效。如何才能使第二个条件起作用?

    if ($('body').scrollTop() > 45) {

        $('.my-div').animate({
            top:'-45px'
        }, 200);
    }         
    if (¿?user-scrolls-up¿?) {

        $('.my-div').animate({
            top:'0px'
        }, 200);
    } 

1 个答案:

答案 0 :(得分:0)

一种方法是将滚动值保存到滚动变量。然后,您可以将该值与上一个滚动值进行比较。如果先前>当前用户已向上滚动。

这是针对那种情况的pseduo代码

var lastScroll = 0;
$(window).scroll(function() {
    var currentScroll = $(window).scrollTop();
    ... Your first if perhaps using currentScroll ...
    if(currentScroll < lastScroll) {
        $('.my-div').animate({
            top:'0px'
        }, 200);
    }
    lastScroll = currentScroll;
}

或者您可以使用setInterval,将最后一次迭代间隔的滚动位置与当前迭代进行比较