2012-03-14 44 views
1

我試圖應用同時動畫,其中一個是UI爆炸效果。我查看了爆炸效果的源代碼,並看到它正在排隊。有什麼方法可以阻止排隊,這樣我就可以在爆炸效果旁邊運行多個動畫了嗎?jQuery UI爆炸效果隊列

謝謝!

回答

2

問題在於爆炸功能的設計方式。

它從頂部和左側獲取元素的偏移量。它會測量這些數據以計算返回位置,行進距離等。如果沒有這些值,則無法進行這些確定。它沒有足夠強大的支持來支持動態計算;如此。

我可以在三個例子中證明這個理論。

第一:

Queued Animation Issue (As Described)

二:

Attempting to Inject using setTimeout returns error offset.top() is null

這使您能夠清楚地看到爲什麼發生這種情況的能力。最明顯的答案是,除非您更改了代碼的核心功能,否則無法解決此解決方案。

這給我帶來了最後一個例子。在下面的例子中,我們將元素包裝在一個div中。我們爲父元素的位置設置動畫,並且展開子元素。讓我們看看它是如何工作的。

三:

As we can see here, the issue is in how the offset is calculated.

它可以得到結束,並開始,但它不能搶在動畫的中間偏移。

我相信這也是你提到的問題 - 不幸的是(大體上)除了自己寫以外,沒有什麼可以做的。

+0

我想了很多,非常感謝你的詳細解釋:) – Aaron 2012-03-14 22:11:33

0

我不熟悉具體的爆炸效果,但我知道,jQuery的animate()允許queue選項(參見 - 有這個選項是如何使用的例子),決定是否將所需的動畫效果隊列。如果爲false,則動畫將不會放入隊列並立即開始。這有幫助嗎?

+0

不,不幸的不是。爆炸效果在.animate上運行,並內置到UI中,但默認排隊。更改實際的UI源似乎是唯一的選擇...雖然謝謝! – Aaron 2012-03-14 22:09:09