javascript - CSS Transitions 与 JS 动画包的性能

标签 javascript css animation

我想知道使用 CSS Transitions 与使用任何各种 JavaScript 动画库在性能上有什么不同吗? (script.aculo.us, scripty2, jsAnim, MooTools, $fx等)。

我在 SafariChrome 中尝试过各种测试,但实际上我没有看到任何区别。我认为 CSS Transitions 应该是硬件加速的。


更新:

我已经尝试在 5 个不同的 DIV 上使用 Scriptaculous 的 Effect.Fade(每个包含带有一些线条的 Canvas )。使用 CSS 过渡做完全相同的事情,我发现性能上绝对没有差异。两者在一个 DIV/Canvas 上都非常流畅,但当我一次做超过 2 个时,两者都非常慢。

我已经在 Safari 4、5 (OSX)Google Chrome 5FireFox 3.7pre 中尝试过。整体结果相同。

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

最佳答案

是的,有区别,CSS 快得多。直到您同时运行许多人或他们运行的次数越多,才可能很难看到。尽管 CSS 动画是有限的。在大多数情况下,它们实际上只对 :hover 事件有效。使用 JavaScript,您可以在任何事件中执行动画:clickmouseovermousemovemouseoutkeyup , keydown

在我看来,jQuery 是 2010 年 JavaScript 动画的最佳选择。参见 jQuery Demos

关于javascript - CSS Transitions 与 JS 动画包的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999749/

相关文章:

嵌套 <DIV> 中未显示 CSS 背景色

html - 如何将 Squarespace 上的博客标题移到图片下方?

iphone - 如何设置键盘动画时间

javascript - 使用前如何唤醒 Controller ?

javascript - 注册成功后登录 Ember-Simple-Auth

javascript - overlay 的位置在页面的右下方

javascript - jquery延迟不算作动画

javascript - 如何首先显示来自另一个 div 的导航栏菜单?

html - 我如何使用元视口(viewport)和 CSS 媒体查询使平均 960 像素的网站在 iPhone 和 iPad 上看起来不错?

css - 同一元素上的多个 CSS3 动画