C2:动画队列

发布时间:2019-05-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了C2:动画队列脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

动画队列

队列的作用就是让我们把一个又一个的任务放到一起,确保只有当前面的任务完成了,才会开始下一个任务。这里面的任务可以是同步的,也可以是异步的。

jQuery的动画系统就是执行一个函数队列。对jquery元素应用fade,slide,aniMATE等动画,都会默认将函数压入一个fx的队列。在我们使用jq的animate()的时候,我们可以在option参数中传入一个queue的标志位来决定这个动画时候压入当前元素的动画队列。如果为false,则不等待当前队列完成,而是立即执行该动画。

$element.queue(fun(next)) 让我们向队列中插入一个函数,当我们向一个空队列或者插入函数的时候,该函数会立即执行。否则将排到队尾执行。插入的这个函数fun可以执行一个同步或者异步的任务,但是不论是同步还是异步任务,如果我们想让排在fun后面的队列函数能够执行,都不要忘了在同步/异步任务完成之后使用next()。这个next 是jQuery的队列系统在调用fun的时候传入的,它是一个函数,执行它就可以让队列继续执行。

jQuery动画队列Api

.queue(): 向队列中添加一个队列函数,或者替换掉当前队列。速查
.dequeue(): 当我们替换了一个新队列之后,或者使用.stop 停止一个队列之后,我们需要这个函数来重新启动队列。速查
.stop(): 停止当前队列中正在进行的任务。它还接收一个 jumptoend的参数,如果传入true,则直接跳到当前动画的终态。注意不一定是动画队列的最后一个动画终态速查
.delay():设置一个延时来让队列延迟执行。

更快的velocITy.js

以前比较老的版本的jQuery的动画是使用定时器来完成的,新版本的jQuery增加了一项判断,如果浏览器支持window.requestAnimationFrame,则会使用window.requestAnimationFrame.

C2:动画队列

jQuery 的动画性能在移动端表现不佳,因为定时器或者其他的问题。velocity是一款性能更好的动画库。官方文档的介绍也多次强调它的快,甚至要超过css3 transition了。它的api设计和jQuery.animate差不多一样,其中动画队列的用法也和jQuery.queue一样。它可以和jQuery一起使用。当不引用jQuery时,Velocity时挂载在window对象中的,当引用jQuery的时候,就挂载在jquery对象下。只需在原先使用$.aniamte()的地方替换成$.velocity(),就切换到了velocity动画库。

velocity 兼容

velocity.js v2.0版本 官方目前支持IE11, Edge, Chrome, Safari, and Firefox。(我自己用的时候,V2.0在IE11,edge会报错。)。所以一般用V1.5。(兼容性好了,性能就要牺牲一点。)而且在如果要支持到IE8,就必须引入jQuery1.X版本。

velocity 特性

它支持属性值函数,颜色动画,CSS3的transform,scroll(页面或者元素的滚动),svg,可以配合velocity.ui.js 注册动画集合,管理多个元素应用同一动画时的间隔,velocity.ui.js还内置了多种动画特效,方便选择。

velocity.js还提供了Velocity('finish')指令来立即完成整个动画队列。

velocity.js中文官网

脚本宝典总结

以上是脚本宝典为你收集整理的C2:动画队列全部内容,希望文章能够帮你解决C2:动画队列所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。