このフィドルで実行されている2つの関数があります
$('.child0,.child1,.child2,.child3,.child4').hide();
fadeItIn();
setTimeout(fadeItInDoom, 500);
function fadeItIn() {
var child;
child = 4;
setTimeout(fadeIn, 3000);
function fadeIn() {
$("#child" + child).fadeIn(175);
--child;
if (child >= 0) {
// Continue fading in
setTimeout(fadeIn, 175);
} else {
// Start fading out
++child;
setTimeout(fadeOut, 175);
}
}
function fadeOut() {
$("#child" + child).fadeOut(175);
++child;
if (child <= 4) {
// Continue fading out
setTimeout(fadeOut, 175);
} else {
// Start over again
setTimeout(fadeIn, 3000 - 1575);
}
}
}
function fadeItInDoom() {
var doom;
doom = 4;
setTimeout(fadeInDoom, 3000);
function fadeInDoom() {
$("#doom" + doom).fadeIn(175);
--doom;
if (doom >= 0) {
// Continue fading in
setTimeout(fadeInDoom, 175);
} else {
// Start fading out
++doom;
setTimeout(fadeOutDoom, 175);
}
}
function fadeOutDoom() {
$("#doom" + doom).fadeOut(175);
++doom;
if (doom <= 4) {
// Continue fading out
setTimeout(fadeOutDoom, 175);
} else {
// Start over again
setTimeout(fadeInDoom, 3000 - 1575);
}
}
}
私は、fadeItInの500ms後にfadeItInDoomが来るようにしたい。これは機能しますが、私が抱えている問題は、タブが非アクティブになると、2 番目のパルス アニメーションのタイミングがずれることです。これを行うことは意味がありませんが、fadeItInDoom 関数が入ったときに setTimeout が既に渡されているためです。私はその仮定で正しいですか?または、私が取得していない setTimeout で何か他のことが起こっていますか?