jQuery动画队列

我们知道jQuery提供了以下几种方法来操作动画队列:

  • stop([clearQuery],[gotoEnd]):停止当前jQuery对象里每个DOM元素上正在执行的动画。
  • queue([queueName,]callback):将callback动画数添加到当前jQuery对象里所有DOM元素的动画函数队列的尾部。
  • queue([queueName,]naeQueue):用newQueue动画函数队列代替当前jQuery对象里所的DOM元素的动画函数队列。
  • dequeue():执行动画函数队列头的第一个动画函数,并将该动画函数移出队列。
  • clearQueue([queueName]):清空动画函数队列中的所有动画函数。

例子:

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <style>
    .box {
  top: 30px;
  position: absolute;
  width: 200px;
  height: 200px;
  background-color: #aaa;
}
body {
  position: relative;
}
span {
  margin-right: 10px;
}
  </style>
</head>
<body>
 <span>动画序列剩余</span><span class="num">0</span><span>部分</span>
<div class="box">点击灰色部分开始动画</div>
  <script>
    function runIt(){
  //启动获取动画队列进度
  showIt();
  //动画第一部分
  $('.box').animate({
    left: '+=100',
    width: '100'
  },600)
  //动画第二部分
  $('.box').animate({
    top: '+=100',
    height: '100'
  },600)
  //动画第三部分
  $('.box').animate({
    left: '-=100',
    width: '200'
  },600)
  //动画第四部分
  $('.box').animate({
    top: '-=100',
    height: '200'
  },600)
  //动画第五部分
  $('.box').slideUp(600)
  //动画第六部分
  $('.box').slideDown(600,runIt)
}
function showIt(){
  var num = $('.box').queue().length;//获取动画队列剩余长度
  $('.num').text(num);
  setTimeout(showIt,10)//设置循环更新动画队列的进展
}
$('.box').on('click',runIt)//当点击box的时候,开始启动动画
  </script>
</body>
</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 动画队列 动画队列可以说是动画执行的一个顺序机制,当我们对一个对象添加多次动画效果时后,添加的动作就会被放入这个动...
    e81bcd463937阅读 159评论 0 0
  • jQuery 动画队列 当在jQuery对象上调用动画方法时,如果对象正在执行某个动画效果,那么新调用的动画方法就...
    Zouch在路上阅读 283评论 0 1
  • jQuery 动画队列 动画队列的方法: 我们知道jQuery提供了以下几种方法来操作动画队列: stop([cl...
    饥人谷_Wing阅读 442评论 0 0
  • 动画队列 队列的作用就是让我们把一个又一个的任务放到一起,确保只有当前面的任务完成了,才会开始下一个任务。这里面的...
    Hsienfeng阅读 447评论 0 0
  • animate 必需的:params 参数定义形成动画的 css 属性可选的: speed 参数规定效果的时长。可...
    沉沉___阅读 217评论 0 0