队列()
方法显示或
操作在匹配元素上
执行的
函数队列。
排队和出队的主要过程:
将函数添加到带有队列的队列(通常是函数数组)
在函数数组的第一
功能是取出列并执行(使用Shift()方法和执行)。
这也意味着,当将再次执行时,得到的是另一个函数。这也意味着,如果不执行队列,队列中的下一个函数不会被执行。
在执行
动画方法的元素上有动画,jQuery也会将其添加到一个名为FX的函数队列中。为了使多个元素依次动画,我们必须手动
设置队列。
在一个示例中,两个div依次向左移动:
复制代码代码如下所示:
DIV 1
DIV 2
var
(function) {$(#block1).Animate ({color: =blue;}}, aniCB),
(功能){ $(# 2)。动画({颜色:=红;} },anicb),
(功能){ $(#酒店)。动画({颜色:=黄色;} },anicb),
(功能){ $(# 2)。动画({颜色:=灰色;} },anicb),
(功能){ $(#酒店)。动画({颜色:=绿色;} },anicb),
函数(){警报(动画结尾)}
};
anicb =函数(){ var
$(document)。Dequeue(myanimation );
}
$(document)。队列(myanimation
/ / anicb();
我首先设置了一系列函数,这些函数是列需要依次执行的动画。
然后定义一个回调函数,以获取方法执行队列中的下一个函数
Then put the function array on the queue of myAnimation on document (you can choose any element, I just put the queue on document for convenience).
最后,我开始执行队列中的第一个函数。
这样做的好处是函数数组是线性展开的,并且增加和减少都非常方便。当你不想继续下一个动画(比如
用户的按钮)时,你只需要清空那个队列。如果你想添加更多,你只需要加入队列。
复制代码代码如下所示:
空队列
$(document)。队列(myanimation
在最后添加一个新函数
$(document)。队列(myanimation,函数(){ alert(动画是真的结束了!);
这也可以应用于ajax和其他方法。如果需要一系列Ajax交互,每个Ajax都希望在最后一个Ajax结束之前
启动。最原始的方法是使用回调函数之前,但这太麻烦了。你也可以使用队列添加一个队列和执行在每个Ajax回调出列。
jQuery动画动画队列的实现,下面的javascript模仿一个:
复制代码代码如下所示:
函数队列(){
这个;
这个;
}
queue.prototype = { {
队列:函数{
var =;
This.a.push(S);
this.hold();
返回此;
},
函数(){
var =;
ClearTimeout(,T);
这个T = setTimeout(){()函数(
console.log(开始队列!
Self.dequeue();
},0);
},
Dequeue:函数(){
var = this.a.shift(),自本;
如果({){
console.log(:+ S);
setTimeout(){()函数(
console.log(结束:+ S);
Self.dequeue();
},s);
}
}
};
var =新队列()。队列(500)。队列(200)。队列(400)。队列(1500)。队列(300)。队列(2000);