jQuery:animate()方法,在滚动函数上有延迟问题

时间:2017-06-01 14:47:29

标签: jquery scroll jquery-animate

我正在尝试使用jQuery根据窗口滚动设置此菜单的高度。向下滚动它工作正常,但滚动时,我不明白动画的延迟。代码:

$(window).scroll(function() {

    if ($(this).scrollTop()>0)
     {
        $('.menu').animate({height:'40px'});
     }
    else
     {
      $('.menu').animate({height:'100px'});
     }
 });

此外,如果我使用方法fadeOut()和fadeIn(),代码工作正常。为什么?

1 个答案:

答案 0 :(得分:1)

根据@drip的提示,我设法达到了这个解决方案:

$(window).scroll(function () {
    var top = $(window).scrollTop();

    if (top > 0) {

        $(".menu").stop().animate({height: '50px'}, 100);
    } else {

        $(".menu").stop().animate({height: '100px'}, 100);
    }
})

stop()方法可防止多次触发动画