2012-01-03 29 views
9

也就是說,如果我將動畫設置爲1秒,它是否總是需要1秒(即跳過幀以實現該間隔)?CSS動畫在嚴格的時間基礎上工作嗎?

我的問題的第2部分涉及如何在異步JavaScript調用中使用CSS動畫。我需要在動畫完成後才能回想起動畫。

回答

4

的時間不保證的廣告是完全正確的。爲了演示,我設置了一個test case,顯示時間與1秒標記有些不同。至於你的問題的第二部分,你可以使用animationend事件重新啓動它,或者你也可以將它設置爲迭代(就像我在我的例子中所做的那樣)。

更新很難模擬瀏覽器窒息,但我注意到它自動窒息時動畫顯着偏離。例如,在加載頁面時,我的Firebug啓動,導致第一個動畫跳轉下降到0.574秒,幾乎是我原始值的一半。所以它看起來像瀏覽器試圖補償一點,但它也可能過度補償。我也看到時間長達2秒,所以我不認爲你可以說任何時候都是準確的。

更新2所以,我能夠get the browser to choke(還得算到1000000 FF ......我印象深刻),和快速回答你的問題是否定的,它不會做任何賠償嘗試並準確掌握時間。它只是窒息而不生動。請注意,這是一個緊密的循環,所以如果它可以在那裏進行其他計算,性能可能會更好,但我不確定。

+0

我希望我能給出多個正確的答案,但這個答案最接近我的第一個問題,而且你甚至對它進行了單元測試,我非常感謝。 – dclowd9901 2012-01-03 17:08:09

2

您的問題的答案基本上都是here at MDN。其要點是:

  1. 時代不是完全準確的,但它們很接近。
  2. 在動畫過程中有不同時間發生的事件(和轉換)。您可以將事件處理程序附加到它們。
+1

這實際上並沒有回答時間問題,它只是基準,在良好的條件下動畫接近你要求的時間。這個問題更多的是「當瀏覽器窒息時會發生什麼?」。 – 2012-01-03 16:36:22

+0

感謝cwolves,是的,這更多的是我的問題第一部分的要點,但是謝謝你指出我正確的方向爲第二部分,小次郎。 – dclowd9901 2012-01-03 16:43:04