动画队列

animate

 必需的 params 参数定义形成动画的 CSS 属性。
 可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

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>  

 队列是一种列表,不同的是队列只能在末尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据。先进先出。这点和栈不一样,在栈中,最后入栈的元素反被优先处理。可以将队列想象成银行排队办理业务的人,排队在第一个的人先办理业务,其它人只能排着,直到轮到他们为止。

自定义动画

上面几个简单的动画不能满足需求的时候,jquery提供了自定义动画行为的方法

.animate( properties [, duration ] [, easing ] [, complete ] )

官方文档

properties是一个CSS属性和值的对象,动画将根据这组对象移动。

$('#clickme').click(function() {
  $('#book').animate({
    opacity: 0.25,
    left: '+=50',
    height: 'toggle'
  }, 5000, function() {
    // Animation complete.
  });
});

.clearQueue

清除动画队列中未执行的动画

.finish

停止当前动画,并清除动画队列中所有未完成的动画,最终展示动画队列最后一帧的最终状态

.stop( [clearQueue ] [, jumpToEnd ] )

停止当前正在运行的动画

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

推荐阅读更多精彩内容

  • 动画队列 动画队列可以说是动画执行的一个顺序机制,当我们对一个对象添加多次动画效果时后,添加的动作就会被放入这个动...
    e81bcd463937阅读 160评论 0 0
  • 队列实现是jQuery非常棒的一个拓展,使用动画队列可以使动画更容易实现。 .animate( propertie...
    初入前端的小菜鸟阅读 287评论 0 0
  • 动画队列 队列的作用就是让我们把一个又一个的任务放到一起,确保只有当前面的任务完成了,才会开始下一个任务。这里面的...
    Hsienfeng阅读 448评论 0 0
  • animate jQuery提供了以下几种方法来操作动画队列 stop([clearQuery],[gotoEnd...
    缺月楼阅读 215评论 0 2
  • animate jQuery提供了以下几种方法来操作动画队列。 stop([clearQuery],[gotoEn...
    jrg陈咪咪sunny阅读 611评论 0 0