jqueryでsetIntervalの中で予めcloneでコピーしたものに書き換える際に、
2回目以降正しくcloneがなされないようで、勝手にonクラスがついてしまいます。
(現在はcloneを使わずに変数の中にhtmlタグを入れると上手くいっています。)
また、if文で初期化して時間差で「on」クラスを付けるようにしているのですが、2回目以降のifでonが付きません。
そちらも合わせて教えていただけると助かります。
html
1<ul id="bg_slider"> 2 <li class="bg_01"></li> 3 <li class="bg_02"></li> 4 <li class="bg_03"></li> 5 </ul>
javascript
1$(function(){ 2 var count = 0; 3// var clone = $("#bg_slider li").clone(); 4//こちらでは、上手く処理されます。 5 var clone = '<li class="bg_01"></li><li class="bg_02"></li><li class="bg_03"></li>'; 6 7 var bg_slider = function(){ 8 9 $("#bg_slider li").eq(count).addClass("on"); 10 count++ 11 if (count == $("#bg_slider li").length + 1){ 12 $("#bg_slider li:not(:last-child)").remove(); 13 $("#bg_slider").append(clone); 14 count = 1; 15 16 $(document).delay(10).queue(function(){ 17//2回目以降処理がなされない、またdelayしないとonの中に書いたtransitionが起動しない。 18 $("#bg_slider li:nth-child(2)").addClass("on").dequeue(); 19 count = 2; 20 }); 21 } 22 } 23 24 bg_slider(); 25 setInterval(bg_slider, 2600); 26});
追記
イメージ的にはこちらのサイトのような背景スライドショーを作成しています。
https://vegas.jaysalvat.com/
回答1件
あなたの回答
tips
プレビュー