CSS:动画
1.css动画
首先我们要用@keyfames animationName在css文件中定义一个动画的名字,然后再需要使用的时候用animation: animationName duration time-function delay iteration-count direction fill-mode来使用即可。其中,animationName表示用户自定义的动画名称。duration表示动画完成的时间,以秒或毫秒为单位。time-function表示动画的速度曲线。delay表示动画开始之前的延迟。Iteration-count表示动画播放次数。direction表示是否轮流反向播放动画。fill-mode表示移动。
2.css动画优缺点
优点:
(1)浏览器可以对动画进行优化。
浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout,setInterval设置动画的优势主要是:1)requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。2)在隐藏或不可见的元素中requestAnimationFrame不会进行重绘或回流,这当然就意味着更少的的cpu,gpu和内存使用量。
(2)强制使用硬件加速 (通过 GPU 来提高动画性能)
缺点:
(1)运行过程控制较弱,无法附加事件绑定回调函数。CSS动画只能暂停,不能在动画中寻找一个特定的时间点,不能在半路反转动画,不能变换时间尺度,不能在特定的位置添加回调函数或是绑定回放事件,无进度报告
(2)代码冗长。想用 CSS 实现稍微复杂一点动画,最后CSS代码都会变得非常笨重。