我正在開發一個web應用程序;其中一個設計要求是幾個大型的CSS3動畫。CSS3動畫和轉換 - 瀏覽器能更好地動畫圖形背景或DOM元素嗎?
具體來說 - 它有一個大的<div>
將響應用戶輸入在屏幕上轉換。
由於應用程序的設計方式,該<div>
的「內容」可以實現爲設置爲<div>
的背景的大型靜態圖形(例如.jpg或.png)。
或者,內容也可以用標準HTML實現。 (內容佈局本身是一個「小」棘手 - 它需要幾個浮動或定位嵌套的div元素和跨度,但沒有什麼瘋狂的。)
我的問題是 - 哪個選項可能導致最好(最平滑)動畫?我很明顯可以自己測試這個,但是很難判斷動畫的平滑度,特別是在各種設備上的十幾種不同的瀏覽器上,我也意識到還有其他的考慮因素 - 例如維護。但是,在這種情況下,我完全專注於動畫性能。)
/我想知道如果瀏覽器一般都是在動畫渲染好簡單的DOM元素與圖形背景,或更復雜的DOM元素(有很多孩子)沒有圖形元素?
另外 - 是否有其他的指導方針?例如,
- 瀏覽器對某些類型的圖形元素進行動畫效果是否比其他類型更好? (例如,.png和.jpg)
- 瀏覽器在子元素具有
position:absolute
,子元素是否浮動時,或者子元素的位置是由常規文檔流確定時,是否更好地爲元素設置動畫效果? - 像嵌套元素上的不透明,陰影或3D轉換之類的東西對父元素的動畫產生不利影響嗎?
- 相對於元素的複雜性,動畫性能會降低嗎?例如,一個有十幾層嵌套DOM元素動畫的元素比一個只有文本節點的簡單元素不夠流暢?
我對這些事情有一個直覺(深度嵌套的DOM元素會比簡單的元素動畫不夠流暢),但我的直覺往往是錯誤的。所以,我想知道是否有關於瀏覽器的更多或更少工作的「規則」。
當有大量子元素的大元素動畫時,還應該考慮什麼?
這並不回答你的問題,但可能有助於你的研究 - http://paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/ – Neil 2013-03-18 13:18:36
謝謝尼爾 - 偉大的鏈接。我偶然發現了這一點,保羅·愛爾蘭人是讓我首先想到這件事的人。看到他和其他人的能力,能夠產生什麼促使我儘可能地優化事物。 – mattstuehler 2013-03-18 13:50:14