複数のdiv'banneritem'を含むクラス'bannergroup'のdivがあります。これらのアイテムを互いに代わりに回転(フェードインしてからフェードアウト)させたいです。
クラスbannergroupで複数のdivを持つことができ、それぞれを個別にローテーションする必要があります。
HTMLは次のとおりです。
<div class="bannergroup">
<div class="banneritem">Only visible one at a time</div>
<div class="banneritem">Only visible one at a time</div>
<div class="banneritem">Only visible one at a time</div>
<div class="banneritem">Only visible one at a time</div>
</div>
<div class="bannergroup">
<div class="banneritem">Only visible one at a time</div>
<div class="banneritem">Only visible one at a time</div>
<div class="banneritem">Only visible one at a time</div>
<div class="banneritem">Only visible one at a time</div>
</div>
私のJqueryは次のようになります:
$('.banneritem').css('display', 'none');
$('.bannergroup').children('.banneritem').each(function( i ) {
$(this).fadeIn().delay(4000).fadeOut();
});
問題:各ステートメントは、前のdivが完了する前に実行され続けます。前の子がいなくなるまで待ってほしい。また、これを継続して実行する必要があります。一度だけ停止します。これを関数に入れることはできますが、もう一度呼び出す方法がわかりません。
編集:常に4つの子アイテムがあるとは限りません。また、1つのグループの子の数が他のグループと異なる場合もありますが、両方とも同期してローテーションする必要があります。一方が他方の前に完了してから、それ自体を再起動するだけであれば問題ありません。