簡體   English   中英

使用Javascript或CSS3制作動畫?

[英]Use Javascript or CSS3 for animations?

我一直想知道在性能方面對動畫有什么好處 - Javascript或CSS3。 在這個頁面上,您可以在GSAP,jQuery和CSS3之間進行比較:

http://css-tricks.com/myth-busting-css-animations-vs-javascript/

向下滾動到性能比較。 現在我的問題如下:

CSS3遲早會比Javascript更快(在這種情況下是GSAP)嗎? 那么我們應該使用CSS3編程動畫還是使用Javascript編程動畫?

更新:另一個網站:

http://greensock.com/transitions/

從現在看來,GSAP在大多數方面比CSS3更快,但在3D轉換中CSS3更快。

現在的問題仍然是:CSS3會比GSAP(或其他類似的框架)更快嗎?

這是動畫如何工作的近似值:

  • CSS3:“請盡可能順利地過渡到這一點。”

  • JavaScript(天真):“好的,所以首先你搬到這里 ,然后你搬到這里 ,然后在這里 ......你跟上了嗎?” [瀏覽器:]“讓你心煩意亂!”

  • JavaScript(delta計時):“好的,搬到這里 。該死的,你很慢。好吧,搬到這里看看你好像沒有落后。”

  • jQuery:“我不在乎它是怎么做的,只要這樣做。再見!”

在我看來,獲勝者是CSS3。

CSS3動畫比JavaScript動畫更快更流暢,因為它們可以通過瀏覽器/ GPU進行優化並可能加速硬件加速。 另一方面,JS動畫通常不太流暢,因為動畫的每個幀都必須被顯式解釋為渲染。

此外,JS動畫主要用於不支持CSS3的舊版瀏覽器,后者相對較新。

似乎只有四個 css屬性可以獲得真正的硬件加速,正如Paul Lewis和Paul Irish在這里解釋的那樣: http//www.html5rocks.com/en/tutorials/speed/high-performance-animations/ (非常有趣的閱讀! )。 它們是: 位置,比例,旋轉和不透明度所有其他css屬性在大多數瀏覽器中都沒有,因此可能很慢。

所以,是的,一些CSS動畫已經非常流暢,其余的將會更快。 特別是在移動設備上。 (其他答案中的技術更多)

但不久之后,像GSAP和jQuery這樣的庫(無論如何)都會改變他們的動畫方法。 他們甚至可以選擇更快的方法,具體取決於運行站點的設備。

(例如:您已經可以使用jQuery的轉接插件來使用jQuery的CSS3動畫.http ://ricostacruz.com/jquery.transit/

所以:

CSS3會比Javascript更快嗎?

是。 但:

我們應該用CSS3編程動畫還是用Javascript編程動畫?

這是一個不同的故事,取決於您的需求。

如果你使用不透明度動畫一個小懸停效果:CSS3是你的方式。 簡單,干凈,快速。

對於復雜的動畫,不同的交互等,您將需要使用JS,這也為您提供了以后選擇動畫方法的靈活性。 特別是GSAP非常強大且易於編寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM