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参数,用于指定操作哪个元素上的动画队列。
原文链接: 3.6.2 操作动画队列