jQuery动画中的延迟

问题描述:

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

$(window).scroll(function(){ 

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

}); 
+6

之前使用.stop(true)为什么第二个'if'声明?这是一个给定的! – 2012-08-12 05:23:21

+0

由于某些原因,当我添加第二个if语句时,它加快了速度。 – 2012-08-12 05:30:05

+2

对不起,但这是*不可能*(我不会经常使用这个词在编程方面)。 – 2012-08-12 05:31:44

正如约瑟夫·西尔伯说,第二if说法是多余的。控制将只能达到这一点,如果是小于或等于60

试试你的动画

$(window).scroll(function(){ 

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

}); 
+1

不需要单独清除队列。只需使用“停止(true)”。请参阅[文档](http://api.jquery.com/stop/)。 – 2012-08-12 05:29:32

+0

是的,工作,非常感谢! – 2012-08-12 05:31:05