2010-02-28 41 views
3

我使用jQuery來爲頁面上的DOM元素設置動畫效果,並在使用其本地animate()時遇到障礙。jQuery中CSS屬性的不同持續時間animate()

我試圖將我的元素移動到右側並更改其不透明度。

$element.animate({ 
    'left': '50%', 
    'opacity': '1.0' 
}, 1000); 

它工作得很好,但我需要在動畫MS 1000位置不透明 MS 300

我發現我不能寫這樣的:

$element.animate({ 
    'left': '50%' 
}, 1000); 


$element.animate({ 
    'opacity': '1.0' 
}, 300); 

這將導致排隊動畫,因爲它是相同的元素和jQuery顯然需要等待第一動畫完。或者我在這裏做錯了什麼。

我嘗試使用第二個參數符號(基於http://api.jquery.com/animate)和使用queue: false,但它沒有奏效。我必須說我不完全理解,所以任何更正都是值得歡迎的。

所以我的問題是這樣 - 如何獨立更改這些CSS屬性的持續時間間隔?

回答

7

我想你在嘗試使用queue時處於正確的軌道。這裏有一個如何這應該是工作的一個例子,我希望它能幫助:

$('#element').animate({ left:'50%' }, { queue: false, duration: 1000 }) 
      .animate({ opacity : '1.0' }, { queue : false, duration: 300 }); 

編輯:測試成功:)

+0

謝謝,就是這樣。它不僅適用於我的代碼,但我必須有一些相互衝突的調用 - 香草演示工程,所以這是正確的路徑。 – riddle 2010-02-28 21:15:29

+0

感謝您的一個很好的例子!解決了我的問題。 – dex3703 2012-04-05 01:28:32

0

你可以在一次呼叫中爲兩個動畫300毫秒。最多3/10的位置變化,然後動態化剩餘的位置變化700ms?

+1

+1如果你顯示一個例子 – bendewey 2010-02-28 16:38:10

+0

哦,你... :-) – Pointy 2010-02-28 16:40:30

+0

感謝您的建議。我可能會這樣做,如果還有其他的失敗。這不完全是一個很好的方式來編碼:) – riddle 2010-02-28 16:42:25

相關問題