延迟jQuery动画

时间:2012-08-12 05:21:28

标签: jquery scroll jquery-animate scrolltop

我正在尝试使用jQuery为div的不透明度设置动画。当我不使用这个if / else语句时它工作正常,但是当我这样做时,在动画发生之前会有一段延迟。我尝试将延迟设置为'0',但这没有帮助。这是代码:

$(window).scroll(function(){ 

    if ($(this).scrollTop() > 60){ 
        $('#navStick').fadeTo("slow", 1);
    } else {
        if ($(this).scrollTop() <= 60){
            $('#navStick').fadeTo("slow", 0);
        }
    }

});

1 个答案:

答案 0 :(得分:4)

正如Joseph Silber所说,第二个if陈述是多余的。只有当控制小于或等于60时,控制才会达到该点。

在动画播放之前尝试使用.stop(true)

$(window).scroll(function(){ 

    if ($(this).scrollTop() > 60){ 
        $('#navStick').stop(true).fadeTo("slow", 1);
    } else {
        $('#navStick').stop(true).fadeTo("slow", 0);
    }

});