jQuery 的动画为了稳定与兼容的的选择,所以即使在目前的 2.1.1 的版本中也是采用的帧动画而不是最新的 CSS3 动画,至于原因当然有很多我们这里就只涉及框架的帧动画的处理,帧动画的实现动画的原理跟动画片的制作一样。动画片是把一些差距不大的原画以一定帧数播放, js 动画是靠连续改变元素的某个 css 属性值,比如 left, top 达到视觉的动画效果。
book.animate({ left: '+=50', }).animate({ left: '+=100', }).animate({ left: '-=50', });
这里是一组最简单的动画,但是在设计上会有一个最重要的问题:
因为动画是异步的,但是 animate 方法的链式代码是同步的,所以这里要涉及一个最重要的问题,动画队列要如何有序的调用?
传统的思路
jQuery 为动画量身定制了队列机制,我们的思路可以是这样
总结
两方方法都是利用异步收集同步的代码,区别就是一个是靠定时器,一个是靠动画自身,所以在精确度上来说显然是动画自身控制是最合理的。好比我们去面试,面试官只要让每一个面试完毕的人去通知后面的人继续进来面试一样,如此反复
右边代码,请在支持 webkit 的浏览器下面调试,谷歌、急速360。
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报