并发动画结束时的jquery

时间:2013-01-27 22:29:23

标签: javascript jquery animation

所以我在一个元素上运行两个并发动画,我希望在两个动画结束后做一些事情

        $("#MyDiv").stop().animate({left: "-=" + 500 + "px"}, 1000);
        $("#MyDiv").animate({top: "-=" + 500 + "px"}, 1000, 

function() {
//do something here
});

所以这是我的方法。我想知道是否有更好的方法,因为第一个动画可能提前几毫秒或更晚结束。

第二个问题:.stop()。animate()和.animate()之间有什么区别吗?如果是,那是什么?

提前感谢!

1 个答案:

答案 0 :(得分:4)

  

"因为第一个动画可能提前几毫秒或更晚结束"

不,您已将两个动画都设置为1000毫秒。

  

" .stop()。animate()和.animate()之间有什么区别吗?如果是,那是什么?"

是的,如果动画处于活动状态并且调用了stop(),则第一个动画将停止。

由于您要为同一个元素设置动画,因此您无需选择它两次。我建议你做这样的事情:

$("#MyDiv").stop(true).animate({left: "-=" + 500 + "px", top: "-=" + 500 + "px"}, 1000, 
function(){
    //animation complete
});

如果动画被卡住了#34;你可以在stop方法stop(true, true)(" jumpToEnd")中添加第二个bool。第一个将清除动画队列。很难说你需要什么而不需要更多的代码。