CSS转换与JSanimation包的性能

我想知道使用CSS转换与各种JavaScriptanimation库的性能有什么不同吗? ( script.aculo.usscripty2jsAnimMooTools$fx等)。

我已经在SafariChrome上尝试了各种testing,但是我没有看到任何区别。 我认为CSS转换应该是硬件加速。


更新

我尝试过使用Scriptaculous的Effect.Fade 5个不同的DIV(每个包含一些线条的canvas)。 使用CSS转换做同样的事情,我看到性能完全没有区别。 两个都是非常光滑的一个DIV /帆布,但是当我每次做2个以上的时候都很慢。

我已经在Safari 4,5(OSX)Google Chrome 5FireFox 3.7pre中试过了 。 相同的结果全面。

为了回应UpHelix的回应,您不仅限于hover等。您可以通过更改任何可transitionable样式来触发transitionable 。 例如,在JavaScript中设置一个元素的不透明度(之后,您已经指定了该元素的transitionProperytransitionDuration )。

是的,有一个区别,CSS要快得多。 可能很难看到,直到你同时运行多个或他们做的越多。 CSSanimation是有限的,但。 在大多数情况下,他们确实只能处理:hover事件。 使用JavaScript,您可以在任何情况下执行animation: clickmouseovermousemovemouseoutkeyupkeydown

在我看来,jQuery是目前为止最好的JavaScriptanimation。 查看jQuery演示

要添加到Uphelix(正确的)答案:JavaScript是一种解释型语言,浏览器的JS引擎必须在运行时parsing和执行每条指令(我知道存在JS编译器,比如V8(在Chrome中使用)),但是原则保持不变)。

另一方面,浏览器可以实现本地的CSS转换,例如在C / C ++或其他东西。 该代码将被编译为机器语言。

如果CSS转换是硬件加速的,取决于浏览器使用的技术,浏览器运行的平台等。

您会注意到移动浏览器(iPhone,Android等)的差异。

CSSanimation有浏览器正在处理的优势。 快速计算和优化是可用的。 在我看来,网页animation的performance应该从“整体”​​的angular度看待。 毕竟一个animation,就FPS而言,浏览器刷新速度不可能更快。

真正的性能水平由整体UI性能给出。 一个JS和一个CSSanimation可以看起来类似。 然而,CSSanimation赢,因为他们不阻止UI线程。

Stoyan Stefanov编写并演示了如何将CSSanimation放在UI线程中: http : //www.phpied.com/css-animations-off-the-ui-thread/

CSSanimation比查询和任何那些JavaScript工作在JavaScript上快得多。 原因是CSS3框架使用GPU而不是CPU。 animation是CPU广泛的操作,每个像素的matrix乘法和傅立叶变换使animation变得沉重。

下面给出一个深入解释的文章。 请通过它比较CSS,jQuery和GSAP。

GSAP库比jQuery快20倍。

http://knowledge-cess.com/animation-and-the-role-of-gpu-a-performance-factor/