我几乎总是使用JQuery动画来进行我所从事的任何网络项目,但我想知道CSS动画有什么不同。我知道语法不同(显然),但CSS动画有哪些JQuery没有的特性,反之亦然。它们各自的优点和缺点是什么?它们的功能更好吗?每个的效率如何?
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中存储动画以获得工作流程和理解的简单性。