美文网首页
jQuery动画队列

jQuery动画队列

作者: e81bcd463937 | 来源:发表于2018-08-22 10:36 被阅读0次

    动画队列

    • 动画队列可以说是动画执行的一个顺序机制,当我们对一个对象添加多次动画效果时后,添加的动作就会被放入这个动画队列中,按照先进先出的顺序执行.

    动画队列机制和执行顺序

    1. 对于一组元素上的动画效果,有如下两种情况:
    • 当在一个animate()方法中应用多个属性时,动画是同时发生的。
    • 当以链式的写法应用动画方法时,动画是按照顺序发生的。
    1. 对于多组元素上的动画效果,有如下情况:
    • 默认情况下,动画都是同时发生的。
    • 当以回调的形式应用动画方式时,动画是按照回调顺序发生的。

    自定义动画

    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动画队列

          本文链接:https://www.haomeiwen.com/subject/opdeiftx.html