CSS 动画与 JQuery 动画

Posted

技术标签:

【中文标题】CSS 动画与 JQuery 动画【英文标题】:CSS Animations vs JQuery Animations 【发布时间】:2015-01-21 13:26:42 【问题描述】:

我几乎总是在我从事的任何 Web 项目中使用 JQuery 动画,但我想知道 CSS 动画有何不同。我知道语法不同(显然),但是 CSS 动画有哪些 JQuery 没有的功能,反之亦然。各自的优缺点是什么?有更好的功能吗?各自的效率如何?

【问题讨论】:

【参考方案1】:

我认为主要的优点是 CSS 动画是原生的。这意味着他们将在浏览器中调用编译后的代码,并且可能会使用任何可用的硬件加速。这意味着 CSS3 动画将更快并且使用更少的内存。

这里有一篇来自 Opera 浏览器开发者的有趣帖子:https://dev.opera.com/articles/css3-vs-jquery-animations/

【讨论】:

【参考方案2】:

CSS3 动画性能可与 javascript 相媲美,但不一定更胜一筹。 此页面可让您测试多种浏览器动画技术并查看实际差异。

https://greensock.com/js/speed.html

CSS3 动画在与 JavaScript 不同的线程中运行,因此它非常无阻塞。 因此,如果您的应用程序有一些负载,CSS3 是最好的。

http://www.phpied.com/css-animations-off-the-ui-thread/

CSS3 动画通常也是硬件加速的(动画在 GPU 上运行,而不是 CPU 提升性能)。但是很多 JavaScript 动画工具也是如此。

技术上基本上就是这样。明智的编码风格,它们也有一些很大的不同。 CSS3 动画的触发一般是通过在 JavaScript 中添加和删除 dom 类来实现的。因此,您的组件的行为最终会存在于 2 个文件和 2 种语言之间。这一切都可以解决,但它会使代码更难推理。

因此,如果您选择使用 CSS3 动画,我建议您不要在 css 中这样做,而是使用一个 JavaScript 库,让您可以将 CSS3 动画存储在 JavaScript 中。或者你可以选择一个只有 JavaScript 的动画库,比如 GreenSock。无论哪种方式,我都建议将动画存储在 JavaScript 中,以简化工作流程和理解。

【讨论】:

以上是关于CSS 动画与 JQuery 动画的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 动画“文本阴影”css 属性

为 Div 背景设置动画 - CSS 或 jQuery

JQuery特效与动画总结

jquery中的事件与动画

如何用js+jquery制作旋转动画?

jquery 动画不透明度与显示:无