要素を特定秒数ごとに特定個数づつループで表示させたいです。
具体的構成は以下の通りです。
lang
1<div class="hoge_wrap"> 2<div class="hoge"></div> 3<div class="hoge"></div> 4<div class="hoge"></div> 5<div class="hoge"></div> 6<div class="hoge"></div> 7<div class="hoge"></div> 8<div class="hoge"></div> 9<div class="hoge"></div> 10<div class="hoge"></div> 11<div class="hoge"></div> 12<div class="hoge"></div> 13<div class="hoge"></div> 14<div class="hoge"></div> 15<div class="hoge"></div> 16<div class="hoge"></div> 17</div>
lang
1.hoge { 2 display: none; 3}
連続するそれぞれの「hoge_wrap」内の「hoge」を2秒ごとに1番目から5つづつループで表示させたいです。
▼2秒目まで
1番目から5番目までを表示
▼4秒目まで
1番目から5番目までを再度非表示
6番目から10番目までを表示
▼6秒目まで
6番目から10番目までを再度非表示
11番目から15番目までを表示
▼8秒目まで
11番目から15番目までを再度非表示
1番目から5番目までを再表示
・・・・・以下ループ
ループ処理を考慮できておりませんが、以下の処理を試しましたのですがうまくいきませんでした。
lang
1$(".hoge_wrap").each(function(){ 2 $(this).find('.hoge:lt(4):gt(0)').attr({"style":"display:block;"}); 3 setTimeout(function(){ 4 $(this).find('.hoge:lt(4):gt(0)').removeAttr("style"); 5 $(this).find('.hoge:lt(9):gt(5)').attr({"style":"display:block;"}); 6 },2000); 7 setTimeout(function(){ 8 $(this).find('.hoge:lt(9):gt(5)').removeAttr("style"); 9 $(this).find('.hoge:lt(14):gt(10)').attr({"style":"display:block;"}); 10 },4000); 11});
さらに、こちらはdisplayの取捨による単純な表示・非表示ですが、フェード切り替えができればベストです。
なお、今回既存サイトの改修で既存システムへの干渉防止の観点より、一部メソッド(※)の使用が禁止されているため以下のメソッドを使用せず実現できる方法をご教授ください。
「document」「window」「eval」「alert」「confirm」「top」「prompt」「self」「parent」「XMLHTTPRequest」
ご教授のほどよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー