以下は、4〜8秒のランダムな遅延でdivを表示/非表示にするために、ここで別のユーザーによって書かれたコードです
<script>
function showCity() {
$('#city-middle').show();
window.setTimeout( hideCity, 10 );
}
function hideCity() {
$('#city-middle').fadeOut(200);
window.setTimeout( showCity, 3000 + (Math.random() * 5000) );
}
hideCity();
</script>
したがって、DIV #city-middle (表示およびフェードアウト) には #bolt-container という子 div があり、明らかにその div とともに表示およびフェードアウトします。このボルト コンテナー内には、ボルト 1 からボルト 4 という名前の 4 つの子 div があります。これらの div のそれぞれが異なる場所に配置されています。
<div id="city-middle">
<div id="bolt-container">
<div class="bolt-1">
</div>
<div class="bolt-2">
</div>
<div class="bolt-3">
</div>
<div class="bolt-4">
</div>
</div>
</div>
私が必要としているのは、#bolt-1 - #bolt-4 div がアニメーションなしで 1 つずつランダムに表示されることです。
これまでのところ、これをグーグルで調べたところ、役立つ可能性のあるjsfiddleが1つだけ見つかりました- http://jsfiddle.net/tricinel/FgXDC/
以下のように実装しようとしましたが、うまくいきませんでした。
function showCity() {
$('#city-middle').show();
window.setTimeout( hideCity, 10 );
}
function hideCity() {
$('#city-middle').fadeOut(200);
window.setTimeout( showCity, 3000 + (Math.random() * 5000) );
}
hideCity();
var divs = $('#bolt-container').find('.div'),
len = divs.length,
randomDiv,
speed = 1000;
var interval = setInterval(
function() {
randomDiv = Math.floor(Math.random()*len);
divs.removeClass('show');
divs.eq(randomDiv).addClass('show');
} , speed);
レイアウトの仕方に問題があることはわかっていますが、初心者として、どこを見ればよいかわかりません。最初の jQuery を正しく閉じていない可能性がありますか? または、2 番目の関数に何らかの形式の関数を設定していませんか?