0

我希望旋转(setInterval)在 p:last-child 之后停止,但我做不到。谁能帮帮我吗?主要目的是只旋转一次,然后在 div 中的 p 的最后一个孩子处停止。

$(document).ready(function(){
$('.fadein').delay(4000).fadeIn(1000);
$('#container p:gt(0)').hide();
    setInterval(function(){
    $('#container p:first-child').fadeOut('slow')
     .next('p').slideDown('slow')
     .end().appendTo('#container');
           },
     3000
    );
});
4

2 回答 2

0

我不确定你真正想做什么,但我可以建议你迭代p children并使用setTimeout()insteadsetInterval()函数,并检查你迭代的元素是否是last元素,然后停止迭代..

于 2013-02-02T22:31:53.757 回答
0

使用变量来保存计时器,当您到达最后一项时,清除计时器。另一种方法是运行 .each() 内部有延迟。这将允许您只运行一次循环。

    var all_p_elements = $('#container p');
    all_p_elements.each(function(){
       $(this).fadeout().next().slideDown().end().appendTo().delay(3000);
     });

类似的东西,未经测试......只是伪代码。

更新:

对stackoverflow的一点研究会带来好处......

你的答案就在这里:如何在 jquery 上一一显示每个 div?

这是 jsFiddle http://jsfiddle.net/syGVW/4/中的一个简单示例

只需继续修改它,直到它完成您想要的所有效果。

于 2013-02-02T22:35:44.100 回答