小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
接着昨天的疑问,既然js和css都可以创建动画,它们到底有什么区别呢
区别
根据目前的有限知识,只知道css创建动画浏览器的兼容性差,但是js是都可以支持的,但是要实现简单的动画,对于目前我这个阶段,感觉没差,只是实现的方式不同罢了,感觉css更适合我一点, js就是操作元素比较方便一点,js做动画对我吸引性不高,js目前定位元素和操作元素对我当前的工作帮助比较大, css创建动画我兴趣比较浓厚,也是促使我自学前端的原因之一。
以下是看网上各种资料,做个总结吧,希望以后有机会能够接触大型项目,会有更深刻的体验吧。
(1)实现简单动画,css比较简单,只要设置一下相关属性就可以, js需要获取元素,写代码逻辑,可能会相对复杂一点。但是如果实现复杂的动画, css估计就会有好多代码,这相比而言,js就比较有优势。
(2)浏览器兼容性,这个最直观,比如css一些动画属性为了兼容浏览器,需要为对应的浏览器都写一遍代码,但js应该是大部分情况下不会考虑这个问题。
(3)动画运行时,js比较灵活,可以控制动画的各种动作,但是css就不行,这个需要找个实例练习一下。
(4)性能方面,css的性能好一点,浏览器会对它进行优化,会比js占用更少的资源,但是js是单线程的脚本语言,当浏览器的的主线程运行时,如果主线程还有其他需要运行的js脚本,样式,计算,布局,交互等一系列任务,就有很大可能造成阻塞,动画就不流畅了.但是这个又不是绝对的
综上实现简单动画,选css, 复杂大型动画考虑用js
英文资料参考分享
这个文档讲的比较详细明白 css-tricks.com/myth-bustin…