爲什麼jQuery animate將框帶到右側,然後到底部,並停在那一點? 我想通過一個完整的圓(或正方形)獲得一個盒子,以便盒子能夠返回到原來的位置。jQuery動畫的左側和底部作品,但不是頂部和右側
這裏的的jsfiddle:http://jsfiddle.net/QZWDs/
爲什麼jQuery animate將框帶到右側,然後到底部,並停在那一點? 我想通過一個完整的圓(或正方形)獲得一個盒子,以便盒子能夠返回到原來的位置。jQuery動畫的左側和底部作品,但不是頂部和右側
這裏的的jsfiddle:http://jsfiddle.net/QZWDs/
的元件可以有一個top
或bottom
位置以及一個left
或right
。全部四個都沒有意義。使用該做你想要的動畫:
$(".block").animate({left:"150px"}, "slow")
.animate({top:"150px"}, "slow")
.animate({left:0},"slow")
.animate({top:0}, "slow");
這僅使用top
和left
位置製作動畫。它還利用鏈接,而不是每次調用$(".block")
,這會創建一個新的jQuery對象。
嘗試這個
$("#right").ready(function(){
$(".block").animate({left:"150px"},"slow", function() {
$(".block").animate({bottom:"150px"},"slow", function() {
$(".block").animate({left:"50px"},"slow", function() {
$(".block").animate({top:"0px"},"slow");
});
});
});
});
一個不需要使用這樣的完成功能。同一對象上的多個動畫會自動排隊,並會默認順序運行。這不是必需的。 – jfriend00 2012-01-07 05:53:15
這裏有使用回調的任何缺點,它的功能相同。我的意思是說,我的答案沒有錯,但它是什麼使得更少的優化。請解釋一下,因爲我是jQuery的新手,我已經學會了自己的基本知識。 – Murtaza 2012-01-07 05:59:02
你的方法的一些缺點:1)你正在爲每個動畫調用創建一個新的jQuery對象,而不是像在user1的答案中那樣鏈接一個對象。 2)嵌套多個完成函數只是比編寫和理解更復雜的代碼,而不是讓動畫隊列爲您工作 - 簡單的代碼也可以更好地工作。 3)在使用鏈接時,'.stop()'方法可以控制如何處理其他排隊動畫,並且沒有完成函數嵌套的控制級別。 – jfriend00 2012-01-07 06:05:59
'left'和'top'的位置,而不是命令移動方向。所以你改變左邊的位置,讓物體向左或向右移動,並改變頂部位置,使物體上下移動。你可以使用bottom和right來代替left和top,但是如果你左右混合或者上下混合,你會得到一團糟。在每個方向挑選一個並且只有一個。 – jfriend00 2012-01-07 05:55:31