2017-08-16 119 views
-2

我希望能够在一堆事件中使用回调,但不能在末尾使用回调。我试图做到这一点,但似乎代码在回调被调用后转义任何效果。jQuery:如何在`animate()`函数完成后触发回调函数

$(this).animate({//animate image 
       top:0 
      }, aniTime) 

      .delay(1000, function(){ 

      //some code 

      }) 

      .animate({//animate image 
       top:250 
      }, aniTime) 

有没有办法做到这一点或不可能/最佳做法?

+0

我不明白这个quesion – Liam

+0

所以要动画顶部为0,等待1000毫秒,然后动画上到250? –

+0

延迟到下一个动画为止,但想要淡入回调中的其他选择器。有道理?我知道我可以在范围之外做到这一点,但是想知道是否可以保持代码整齐。 – RobJShillito

回答

1

您可以通过使用animate的complete回调参数来实现此效果。这将在延迟时间开始的同时运行第一个动画完成时的内容。

例子:

$(this).animate({//animate image 
     top:0 
    }, aniTime, 
    // complete callback follows: 
    function(){ 
     $('otherElement').fadeOut(200); 
    }) 
    .delay(1000) 
    .animate({//animate image 
     top:250 
    }, aniTime) 
+0

完美.....非常感谢:) 应该已经发现,一个真的....谢谢 – RobJShillito

+0

伟大请标记答案正确 –

+0

完成和完成:) – RobJShillito

相关问题