Jquery 多个元素上的排队动画

Jquery 多个元素上的排队动画,jquery,animation,jquery-effects,Jquery,Animation,Jquery Effects,我试图了解如何使用jQuery对多个元素上的动画进行排队 例如,我需要在屏幕上移动元素。然后,完成后,移动下一个,等等 这可能是一个项目列表。。这是正确的。。一个接一个 有人能帮我吗 我是否需要使用每个动画的onComplete函数来启动下一个动画 更新:简单的例子 <ul><li>Item 1</li><li>Item 2</li><li>Item 3</li><li>Item 4</li&g

我试图了解如何使用jQuery对多个元素上的动画进行排队

例如,我需要在屏幕上移动元素。然后,完成后,移动下一个,等等

这可能是一个项目列表。。这是正确的。。一个接一个

有人能帮我吗

我是否需要使用每个动画的onComplete函数来启动下一个动画

更新:简单的例子

<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li><li>Item 4</li></ul>
  • 第1项
  • 第2项第3项第4项
我想让它们一个一个地消失。因此,项目1逐渐消失。然后,完成后,项目2淡入,以此类推


我正在使用jQuery将一些Flash“页面构建”类型的动画转换为HTML。所以我需要在多个元素上对动画进行排队。例如,显示一个框,并在其上滑动一些文本。。etc.

实际上,所有jQuerys
fx方法(包括
.animate()
)都提供了一个
完整回调
。也就是说,在动画完成后,您需要执行一些非fx内容

如果您只想让不同的
fx
效果按顺序执行,那么链接如下方法就足够了

$('object').fadeOut(3000).slideDown(2500).slideUp(1500);
jQuery将在这里自动照顾您。这被转化为一个调用,如

$('object').fadeOut(3000, function() {
    // do something here
    $(this).slideDown(2500, function() {
        // do something here
        $(this).slideUp(1500, function() {
           // do something here
        });
    });
});
更新

参考您的评论,将其输入firebug或webkit控制台:

 $('div').slice(4, 9).fadeOut(3333).fadeIn(5555).slideUp(2000).slideDown(1000);

这将在Stackoverflow端的一些上div元素上工作。

实际上,所有jQuerys
fx方法(包括
.animate()
)都提供了一个
完整回调。也就是说,在动画完成后,您需要执行一些非fx内容

如果您只想让不同的
fx
效果按顺序执行,那么链接如下方法就足够了

$('object').fadeOut(3000).slideDown(2500).slideUp(1500);
jQuery将在这里自动照顾您。这被转化为一个调用,如

$('object').fadeOut(3000, function() {
    // do something here
    $(this).slideDown(2500, function() {
        // do something here
        $(this).slideUp(1500, function() {
           // do something here
        });
    });
});
更新

参考您的评论,将其输入firebug或webkit控制台:

 $('div').slice(4, 9).fadeOut(3333).fadeIn(5555).slideUp(2000).slideDown(1000);

这将对Stackoverflow侧的一些上div元素起作用。

如果您知道对其他元素的影响持续时间,则可以为每个元素添加延迟

假设你想一个接一个地淡出一些div,每次淡出需要800毫秒,那么,你可以立即开始第一个div,第二个div的延迟为800毫秒(因此它在其他div结束时开始),第三个div的延迟为1600毫秒,依此类推

您可以使用firebug或webkit控制台(就像您的示例想法jAndy!=D)执行的自动化示例如下:


(在导航链接上观看:问题、标签、用户……)执行此操作。

如果您知道对其他元素的影响持续时间,您可以为每个元素添加延迟

假设你想一个接一个地淡出一些div,每次淡出需要800毫秒,那么,你可以立即开始第一个div,第二个div的延迟为800毫秒(因此它在其他div结束时开始),第三个div的延迟为1600毫秒,依此类推

您可以使用firebug或webkit控制台(就像您的示例想法jAndy!=D)执行的自动化示例如下:


(在导航链接上观看:问题、标签、用户…

Paul Irish就这个主题写了一篇很棒的文章:

对于淡入示例,您可以执行以下操作:

(function showNext(jq){
jq.eq(0).fadeIn("fast", function(){
    (jq=jq.slice(1)).length && showNext(jq);
});
})($('ul > li'))

适应口味。

保罗·爱尔兰(Paul Irish)就这个话题写了一篇很棒的文章:

对于淡入示例,您可以执行以下操作:

(function showNext(jq){
jq.eq(0).fadeIn("fast", function(){
    (jq=jq.slice(1)).length && showNext(jq);
});
})($('ul > li'))

根据口味调整。

我不清楚您想要达到什么目的。请您详细说明或发布一些代码以便更好地理解。我不清楚您想要达到什么目的。请您详细说明或发布一些代码以便更好地理解。这只适用于单个元素。。不是多个元素。我需要在不同的元素上做不同的动画。就像把一个滑上去。。然后滑下另一个。但是我需要它们在队列中发生,而不是一起发生。@majestiq:就像我上面建议的那样,使用每个
fx
方法提供的回调函数。这只适用于单个元素。。不是多个元素。我需要在不同的元素上做不同的动画。就像把一个滑上去。。然后滑下另一个。但是我需要它们在队列中发生,而不是一起发生。@majestiq:就像我上面建议的那样,使用每个
fx
方法提供的回调函数。我建议使用这种方法来循环列表和设置动画。您可以模拟队列函数,而不必为退出队列而感到困惑。我建议使用这种方法循环列表并设置动画。您可以模拟queue函数,而不必为退出队列而感到困惑