【发布时间】:2011-03-01 07:05:28
【问题描述】:
我想知道使用 CSS 过渡与使用各种 JavaScript 动画库的性能有什么不同吗? (script.aculo.us、scripty2、jsAnim、MooTools、$fx 等)。
我在 Safari 和 Chrome 中尝试了各种测试,但实际上我并没有发现任何区别。我认为 CSS 过渡应该是硬件加速的。
更新:
我尝试在 5 个不同的 DIV 上使用 Scriptaculous'Effect.Fade(每个 DIV 都包含一个带有一些线条的画布)。使用 CSS 转换做同样的事情,我看不出性能上有什么不同。使用一个 DIV/Canvas 时,两者都非常流畅,但当我一次执行 2 个以上时,两者都非常慢。
我已经在 Safari 4、5 (OSX)、Google Chrome 5 和 FireFox 3.7pre 中尝试过。全面的结果相同。
在回答 UpHelix 的回复时,您不仅限于 hover 等。您可以通过更改任何 transitionable 样式来触发转换。例如,在 JavaScript 中设置元素的不透明度(之后,您为该元素指定了 transitionPropery 和 transitionDuration)。
【问题讨论】:
-
需要考虑的一件事(未来 3 年) - 也许您的计算机功能强大,可以轻松运行两者。正如你所说,“两者都非常顺利”。也许尝试一些更边缘的测试,或者在速度较慢的计算机上进行测试。
-
但还有另一面 - 跨浏览器支持。我有旧网站不能在 FF 中运行,但可以在所有其他浏览器中运行。我认为这是一个严重的问题。
标签: javascript css animation