的 「動畫」 的最後一個參數是 「完成」。這是您可以在動畫完成時運行的功能 - 即您要求的功能。 (除非你設置了一個變量= 0,在完成時:變量=變量+ 1,如果變量= 2,那麼兩者都完成了 - 但是失敗的風險很小) ),所以相信他們會在第二秒後結束,並且只在其中一個動畫上設置「完成」,或者添加一個小數間隔(例如0.1秒),並以此運行
所以一種方法:
$("a").live("click", function(){
$(".circle1").animate({
marginLeft: "-=1000px"
}, 1000)
$(".circle2").animate({
marginLeft: "+=1000px"}, 1000, function() {
setTimeout(function() {alert('both done'); }, 100);
});
而且失敗的風險分數長篇大論的方法:
$("a").live("click", function(){
var comp = 0;
$(".circle1").animate({
marginLeft: "-=1000px"
}, 1000, function() {comp++; if (comp==2) { alert('both done'); } })
$(".circle2").animate({
marginLeft: "+=1000px"
}, 1000, function() {comp++; if (comp==2) { alert('both done'); } })
});
編輯
下面的評論之後,我已經添加了所有必要的位,糾正了「暫停」功能等(以上爲樣本給稀化的想法)。這裏有一些測試腳本,包括使用「on」(而不是「live」),取消點擊和添加加載器。
<html>
<head>
<title>Test</title>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script>
$().ready(function() {
$("a").live("click", function(){
$(".circle1").animate({
marginLeft: "-=1000px"
}, 1000);
$(".circle2").animate({
marginLeft: "+=1000px"
}, 1000, function() { setTimeout(function() {alert('both done'); }, 100);
});
return false;
});
});
</script>
</head>
<body>
<div id="counter"></div>
<a href="#">Click Me</a>
<div class="circle1"></div>
<div class="circle2"></div>
</body>
</html>
。
<html>
<head>
<title>Test</title>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script>
$().ready(function() {
$("a").on("click", function(){
var comp = 0;
$(".circle1").animate({
marginLeft: "-=1000px"
}, 1000, function() {comp++; if (comp==2) { alert('both done'); } });
$(".circle2").animate({
marginLeft: "+=1000px"
}, 1000, function() {comp++; if (comp==2) { alert('both done'); } });
return false;
});
});
</script>
</head>
<body>
<div id="counter"></div>
<a href="#">Click Me</a>
<div class="circle1"></div>
<div class="circle2"></div>
</body>
</html>
。
請刪除此問題中的「php」標記。複製http://stackoverflow.com/questions/1251300/how-to-run-two-jquery-animations-simultaneously – dmmd
unqueueing them 這裏是解決方案:http://stackoverflow.com/questions/1251300/how-to-run-two-jquery-animations- –