所以我在一个元素上运行两个并发动画,我希望在两个动画结束后做一些事情
$("#MyDiv").stop().animate({left: "-=" + 500 + "px"}, 1000);
$("#MyDiv").animate({top: "-=" + 500 + "px"}, 1000,
function() {
//do something here
});
所以这是我的方法。我想知道是否有更好的方法,因为第一个动画可能提前几毫秒或更晚结束。
第二个问题:.stop()。animate()和.animate()之间有什么区别吗?如果是,那是什么?
提前感谢!
答案 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。第一个将清除动画队列。很难说你需要什么而不需要更多的代码。