3.6.2 操作动画队列
3.6.2 操作动画队列
当在jQuery
对象上调用动画方法时,如果该对象正在执行某个动画效果,那么新调用的动画方法就会被添加到动画队列中,jQuery
会按顺序依次执行动画队列中的每个动画。
jQuery对象提供的操作动画队列的方法
jQuery
对象提供了以下几种方法来操作动画队列。
stop方法
方法 | 描述 |
---|---|
stop([clearQueue],[gotoEnd]) |
停止当前jQuery 对象里每个DOM 元素上正在执行的动画。 |
如果该jQuery
对象上绑定了动画队列,且clearQueue
没有指定为true
,则执行该方法后将立即执行当前动画的下一个动画,
可以对该函数的clearQueue
、gotoEnd
两个可选的布尔类型的参数进行指定,
- 其中
clearQueue
指定是否删除
该jQuery
对象上的动画队列; - 如果将
gotoEnd
设置为true
,则当前动画立即跳到最后一帧
而结束
,否则当前动画将停在当前帧而结束。
queue方法
queue
有如下几种形式:
方法 | 描述 |
---|---|
queue([queueName]) |
返回当前jQuery 对象里第一个DOM 元素上的动画函数队列。 |
queue([queueName,] callback) |
将callback 动画函数添加到当前jQuery 对象里所有DOM 元素的动画函数队列的尾部。 |
queue([queueName,] newQueue) |
用newQueue 动画函数队列代替 当前jQuery 对象里所有DOM 元素的动画函数队列。 |
queueName
用于为动画队列指定一个名称,如果省略该参数,jQuery
默认使用标准的动画队列名:fx
。
dequeue方法
方法 | 描述 |
---|---|
dequeue() |
执行动画函数队列头的第一个动画函数,并将该动画函数移出队列。 |
clearQueue方法
方法 | 描述 |
---|---|
clearQueue([queueName]) |
清空动画函数队列中的所有动画函数。 |
程序示例
下面的程序代码示范了如何访问默认动画队列的属性。
1 |
|
该程序中的粗体字代码为指定<div>
元素依次调用了8个动画函数,这意味着jQuery
将会把它们添加到动画队列中,然后该元素将会依次执行这个动画队列中的8个动画。每执行完一个动画效果,动画队列的长度减1。
jQuery命名空间下的queue和dequeue方法
除此之外,jQuery
命名空间下也提供了jQuery.queue(element[,queueName])
、jQuery.dequeue(element [,queueName])
两个方法,这两个方法的功能与jQuery
对象的queue
方法和dequeue
方法的功能相同,只是需要为它们传入element
参数,用于指定操作哪个元素上的动画队列。