说说大家都熟悉的网页动画技术
前言
从古代手绘翻书动画,到胶片电影,再到多张静态图合成gif,这些都离不开一个术语叫帧。
也就是我们需要绘制每一帧,然后控制一下帧与帧之间的时间间隔。
然而相邻两帧之间的变化并不大,重复绘制浪费体力,幸亏计算机代码可以复制粘贴,然后修改一下变动的地方就可以了。
计算机代码除了可以复制粘贴,还有抽象能力。我们可以把需要复制粘贴的代码交给计算机来重复执行。把需要变动的地方,交给计算机来运算。
而网页中具备运算能力的只有JS,其他的就只能是定义一下参数,剩下的就交给浏览器了。
开始网页动画可以通过以下几种方式实现(gif、flash除外),
css动画
SVG动画
JS动画(包括css、SVG的属性修改实现的动画)
最早JS通过setTimeout()或者setInterval()方法设置一个时间,来控制帧与帧之间的时间间隔。
setTimeout()直接用跳出来终止下一帧。
setInterval()使用clearInterval()来取消周期执行。
后来,有了一个requestAnimationFrame(),让浏览器决定最优帧速率、选择绘制下一帧的最佳时机。requestAnimationFrame()用cancelAnimationFrame()来结束。
所以我们来改变一下思维方式,既然帧与帧之间的时间间隔不用考虑了,那就关心一下变化速率吧。
PartialsupportreferstolackingcancelAnimationFramesupport.
SupportswebkitCancelRequestAnimationFrameratherthan`webkitCancelAnimationFrame.
--caniuse.重庆最好的白癜风医院治疗白癜风费用
版权所有:Copyright © 2012-2020 Web开发

电话:
当前时间: