0

p:last-child の後に回転 (setInterval) を停止したかったのですが、できません。誰でも私を助けてもらえますか?主な目的は、1回転だけにして、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

変数を使用してタイマーを保持し、最後のアイテムにいるときにタイマーをクリアします。別の方法は、内部に遅延を指定して .each() を実行することです。これにより、ループを 1 回だけ実行できます。

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

そのようなもので、テストされていません...単なる疑似コードです。

アップデート:

スタックオーバーフローに関する少しの調査は、利益をもたらします...

あなたの答えはここにあります: jquery で各 div を 1 つずつ表示する方法は?

jsFiddle http://jsfiddle.net/syGVW/4/の簡単な例を次に示します。

必要なすべての効果が得られるまで、変更を続けてください。

于 2013-02-02T22:35:44.100 に答える
0

本当に何をしたいのかわかりませんが、反復して代わりに関数p childrenを使用し、反復した要素が要素であるかどうかを確認してから、反復を停止することをお勧めします..setTimeout()setInterval()last

于 2013-02-02T22:31:53.757 に答える