我几乎总是在我工作的任何Web项目中使用JQuery动画,但我想知道CSS动画是如何不同的。我知道语法是不同的(显然),但CSS动画有哪些功能,JQuery没有,反之亦然。各自的优点和缺点是什么?一个人有更好的功能吗?每个效率如何?
答案 0 :(得分:8)
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库,让你可以在CSS中存储你的CSS3动画。或者您可以选择仅限JavaScript的动画库,如GreenSock。无论哪种方式,我建议在JavaScript中存储动画,以实现工作流程和简化理解。
答案 1 :(得分:3)
我认为主要的专业是CSS动画是原生的。这意味着他们将在浏览器中调用已编译的代码,并可能使用任何可用的硬件加速。这意味着CSS3动画将更快并且使用更少的内存。
以下是Opera浏览器开发人员关于此主题的有趣帖子:https://dev.opera.com/articles/css3-vs-jquery-animations/