1

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

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

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

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

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

提前致谢!

4

1 回答 1

4

“因为第一个动画可能会提前或推迟几毫秒结束”

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

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

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

由于您正在为相同的元素设置动画,因此您不需要选择它两次。我建议你这样做:

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

如果动画“卡住”,您可以在 stop 方法中添加第二个布尔值stop(true, true)(“jumpToEnd”)。第一个将清除动画队列。如果不看更多代码,很难说出你需要什么。

于 2013-01-27T22:33:15.407 回答