换回首页

说说大家都熟悉的网页动画技术

前言

从古代手绘翻书动画,到胶片电影,再到多张静态图合成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开发

    电话:

    当前时间: