jQuery animate()元素的单个队列

时间:2011-05-11 13:52:32

标签: javascript jquery

默认情况下,为animate()创建的jQuery队列是按元素完成的,我想知道是否有办法为使用animate()完成的所有动画创建单个队列?即一次只能发生一个动画

3 个答案:

答案 0 :(得分:5)

您可以使用队列在一个元素上使用自己的自定义队列执行此操作:

http://jsfiddle.net/jRawX/2/

$(function(){

    $('#myQueue')
        .queue('myQueue',function(next){
            $('#t1').animate({left: 100}, 
                            {duration: 1000, 
                             queue: false,
                             complete: next
                            })
        })
        .queue('myQueue',function(next){
            $('#t2').animate({left: 100}, 
                            {duration:1000, 
                             queue:false,
                             complete: next})
        })
        /* etc. */
        .dequeue('myQueue')
})

答案 1 :(得分:1)

这样的事情:

$(someElement) // could also be a plain object, e.g. $({})
    .queue('customQueue', function (next) {
        first.animate({ ... }, function () {
            // when the animation is complete, call next() for customQueue
            next();
        });
    })
    .queue('customQueue', function (next) {
        second.animate({ ... }, function () {
            // when the animation is complete, call next() for customQueue
            next();
        });
    })
    // add more animations, then
    .dequeue('customQueue');

答案 2 :(得分:1)

.animate()有一个queue选项,每个元素只允许一个效果:

  

queue:一个布尔值,指示是否将动画放在效果队列中。如果为false,则动画将立即开始。

用法

$('div').animate({ height: 50, queue: false });