jQuery提供了以下几种方法来操作动画队列。
stop([clearQuery],[gotoEnd]):停止当前jQuery对象里每个DOM元素上正在执行的动画。
queue([queueName,]callback):将callback动画数添加到当前jQuery对象里所有DOM元素的动画函数队列的尾部。
queue([queueName,]naeQueue):用newQueue动画函数队列代替当前jQuery对象里所的DOM元素的动画函数队列。
dequeue():执行动画函数队列头的第一个动画函数,并将该动画函数移出队列。
clearQueue([queueName]):清空动画函数队列中的所有动画函数。
可选的 callback 参数是动画完成后所执行的函数名称。
<style>
div {
width: 60px;
height: 60px;
position:absolute;
top:60px;
background: #f0f;
display:none;
}
</style>
</head>
<body>
<script type="text/javascript" src="../jquery-1.8.0.js">
</script>
<p>动画队列的长度是:<span></span></p>
<div></div>
<script type="text/javascript">
var div = $("div");
function runIt()
{
// 第1个动画:显示出来
div.show("slow");
// 第2个动画:自动动画,水平左移300px
div.animate({left:'+=300'},2000);
// 第3个动画:卷起来
div.slideToggle(1000);
// 第4个动画:放下来
div.slideToggle("fast");
// 第5个动画:自动动画,水平右移300px
div.animate({left:'-=300'},1500);
// 第6个动画:隐藏出来
div.hide("slow");
// 第7个动画:显示出来
div.show(1200);
// 第8个动画:卷起来,动画完成后回调runIt
div.slideUp("normal", runIt);
}
// 控制每0.1秒调用一次该方法,该方法用于显示动画队列的长度
function showIt()
{
var n = div.queue();
$("span").text(n.length);
setTimeout(showIt, 100);
}
runIt();
showIt();
</script>
ps: 队列是一种列表,不同的是队列只能在末尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据。先进先出。这点和栈不一样,在栈中,最后入栈的元素反被优先处理。可以将队列想象成银行排队办理业务的人,排队在第一个的人先办理业务,其它人只能排着,直到轮到他们为止。