什么更快? CSS3过渡或jQuery动画?

时间:2012-06-11 17:28:33

标签: jquery ipad css3 css-transitions

我正在使用iPad HTML5应用程序,我已经实现了ontouch支持以更快地触发事件,并且我使用jQuery更容易地定位元素,但对于动画我正在使用CSS3过渡

您认为哪个更快?使用jQuery动画,因为我已经导入了库或使用jQuery定位元素时使用CSS3过渡?

10 个答案:

答案 0 :(得分:47)

根据this link,jQuery动画比css动画要慢得多。

原因可能是因为jquery必须使用定时器和循环来修改DOM元素的道具。 CSS是浏览器引擎的一部分。这很大程度上取决于系统的硬件。您还可以在分析Chrome或Firefox时检查它。

答案 1 :(得分:6)

CSS动画几乎总是更快。

  

CSS过渡和jQuery动画的头对头比较。   不是将计时器设置为重复运行,而是处理转换   本地由浏览器。在我相当不科学的测试中,   过渡总是更快,以更高的帧速率运行,   特别是有大量元素。他们也有优势   颜色可以轻松制作动画,而不必依赖   插件。

http://css.dzone.com/articles/css3-transitions-vs-jquery

相关问题: Performance of CSS Transitions vs. JS animation packages

答案 2 :(得分:4)

CSS3 Transitions 应该更快,因为它们是浏览器的原生。

答案 3 :(得分:4)

它的css3速度更快,消耗的内存更少,更流畅。 CSS处理器是用C ++编写的,本机代码执行速度非常快,而jQuery(JavaScript)是一种解释型语言,浏览器无法及时预测JavaScript。 http://dev.opera.com/articles/view/css3-vs-jquery-animations/

查看以上链接,了解通过CSS3对jQuery进行的实验

答案 4 :(得分:4)

This article (http://css-tricks.com/myth-busting-css-animations-vs-javascript/)对CSS变换与jQuery动画与GSAP(另一个JavaScript库)进行了出色的比较。

  

CSS动画明显快于jQuery。但是,在我测试的大多数设备和浏览器上,基于JavaScript的GSAP表现甚至比CSS动画更好

所以 CSS变换比jQuery动画更快,但是不要让这让你认为CSS变换比 JavaScript 更快。 GSAP显示 JavaScript可以胜过CSS

答案 5 :(得分:2)

CSS3会更快,因为它是浏览器的标准,因为JQuery是另一个必须加载的文件,但我发现根据动画,JQuery可以运行得更顺畅。有时,现在再次尝试使用纯Javascript也很不错。

答案 6 :(得分:1)

Mozilla developer documentation raises some interesting points regarding CSS3 animation

  

让浏览器控制动画序列让浏览器   通过例如减少性能和效率来优化性能和效率   更新当前不在标签中运行的动画的频率   可见。

WebKit (which powered Safari) also makes use of hardware accelerated compositing,它对性能的影响要大于Javascript目前可以做的任何事情。 (我认为随着更多功能被添加到管理计算中,这将很快改变)这是因为如果可用于执行计算,它将利用专用硬件,而不是通过像Javascript这样的翻译语言来实现。

我不是100%确定iPad上的WebKit 是否是硬件加速的;但是,由于它是标准化的并且越来越受欢迎,因此只会随着时间的推移而改善。

答案 7 :(得分:1)

来自here

  

CSS过渡和jQuery动画的头对头比较。       不是将计时器设置为重复运行,而是本机处理转换       通过浏览器。       在我相当不科学的测试中,转换总是更快,运行时使用       更高的帧速率,特别是对于大量元素。他们也有       优点是颜色可以轻松制作动画,而不必依赖       插件。

测试here以及这个结论。

  

基于计时器的Javascript动画永远不会像原生一样快   动画,       因为他们无法访问足够的浏览器来进行相同的优化。       这些动画应仅用作旧版浏览器的后备。

另请注意this

  

CSS3动画非常简单,但确实使用了很多处理器   功率。       使用CSS3无法像使用CSS一样微调动画       像jQuery这样的框架。所以,只要CSS3动画不是你的CPU友好       更好地坚持使用jQuery。

答案 8 :(得分:0)

如果你正在使用带有canvas标签的jQuery / javascript动画(如果我没有弄错的话仍然依赖于一个计时器......虽然我不习惯使用它),它会为你提供硬件加速的优势用javascript。如果您只是想在悬停时移动某些东西,那么过渡效果很好。 CSS转换可能会运行得更顺畅,但这是一个折衷,你通过使用转换放弃了对动画的大量javascript控制。我喜欢在CSS中保持CSS的风格和JS中的行为 - 这不是它应该如何工作吗? CSS转换破坏了这种逻辑......

答案 9 :(得分:0)

本机应该更快,但如果浏览器开发人员邋((或懒惰),他们会编写错误代码,这会导致CSS动画(或转换)结果不佳。

如今,jQuery有一个插件,它覆盖了“动画”功能和“改进”功能。见Velocity。我没有通过其他方式使用javascript为DOM设置动画,因为它超出了这个问题的范围。

所以,原样,jQuery比CSS慢。 CSS也更容易编写,因为你已经有了元素样式,所以添加一些规则很容易,相比之下你需要开始在某处编写JS并管理它......但对于复杂,繁重的东西,JS是更快,更遗憾。

关于这个确切问题的非常好的文章 - http://davidwalsh.name/css-js-animation