基本的に「プロジェクト」の配列である JSON オブジェクトがあり、各プロジェクト内にはさまざまな数の画像があります。外側の (プロジェクト) 配列をループして、それぞれをフェードインしてからアウトできるようにしたいと考えています。しかし、フェードインの後、外側の配列がフェードアウトして次のプロジェクトにフェードインする前に、関連する画像 (スライドショー) を循環できるようにしたいと考えています。
私が抱えている問題は、動的に設定された遅延タイミングを正しく機能させることです。次のプロジェクトは前のプロジェクトが完了するのを待たず、最後のプロジェクトが現れるのが遅すぎます。私のコードを見ると、タイミングの側面全体を理解するのに苦労していることは明らかです。
<div class="delayDisplay"></div>
<div class="info">
div 1
<div class="img">1</div>
<div class="img">2</div>
<div class="img">3</div>
</div>
<div class="info">
div 2
<div class="img">1</div>
<div class="img">2</div>
</div>
<div class="info">
div 3
<div class="img">1</div>
<div class="img">2</div>
<div class="img">3</div>
<div class="img">4</div>
</div>
$(document).ready(function() {
$('.info').each(function(index) {
var info = $(this);
var img = info.children('.img');
var transDur = 500;
var imgDur = 2000;
var galLegnth = img.length;
var infoDelay = ((transDur * 2) + imgDur) * galLegnth + 200;
setInterval(function() {
info.fadeIn(transDur, function() {
$('.delayDisplay').text(infoDelay);
img.each(function(i) {
curImg = $(this);
console.log(curImg.text());
//curImg.delay(1200).show();
setTimeout(function() {
curImg.fadeIn(500).delay(1000);
}, 2000 * i);
});
}).delay(infoDelay).fadeOut(transDur);
}, infoDelay * index);
});
});
心に留めておいてください、理由を尋ねるコメントはしないでください. はい、JSON データは正しく処理されています。ご覧のとおり、この時点での私の唯一の問題は、タイミングを理解することです。