一度に 1 つだけが表示されるように、2 つの div を交互にフェードイン/フェードアウトさせるにはどうすればよいですか? そして、それを終わりのないループにしますか?
前もって感謝します!!
.fadeOut と .fadeIn を使用して行う必要があることはわかっていますが、何度もループさせる方法がわかりません。
一度に 1 つだけが表示されるように、2 つの div を交互にフェードイン/フェードアウトさせるにはどうすればよいですか? そして、それを終わりのないループにしますか?
前もって感謝します!!
.fadeOut と .fadeIn を使用して行う必要があることはわかっていますが、何度もループさせる方法がわかりません。
これが私自身のバージョンのフィドルです
window.switchIn = function () {
$('.red').fadeToggle(function() {
$('.blue').fadeToggle(function() {
setTimeout(function() {window.switchOut();}, 500);
});
});
}
window.switchOut = function () {
$('.blue').fadeToggle(function() {
$('.red').fadeToggle(function() {
setTimeout(function() {window.switchIn();}, 500);
});
});
}
setTimeout(function() {window.switchIn();}, 500)
fadeToggle
どちらのDIVも同時に表示したくないので、質問の解決策は単純なものよりも少し注意が必要です。重要なのは、フェードアクションを連鎖させることです。これにより、次のフェードアクションは、前のフェードアクションが完了するまで実行されません。
論理的には、次のようにします。DIV1フェードイン、DIV1フェードアウト、DIV2フェードイン、DIV2フェードアウト、繰り返し。
以下の私の解決策は、ページ上の任意の2つの要素を取り、どちらかを同時に表示せずにそれらの可視性を振動させます。iDuration
各遷移の時間をミリ秒単位で指定します。
HTML:
<div id="div1" style="display:none;">DIV #1</div>
<div id="div2" style="display:none;">DIV #2</div>
JavaScript:
function runToggle(iDuration, domFirst,domSecond) {
$(domFirst).fadeToggle(iDuration, "linear",function() {
$(domFirst).fadeToggle(iDuration, "linear",function() {
$(domSecond).fadeToggle(iDuration,"linear",function() {
$(domSecond).fadeToggle(iDuration,"linear",function() {
setTimeout(function() {
runToggle(domFirst,domSecond) ;
},50);
});
});
});
});
};
runToggle(1000, $('#div1'),$('#div2'));
私はsetTimeout
タイミングの目的ではなく、JavaScriptインタープリターを解放して、このフェードループの実行中にブラウザーが他のことを実行できるようにするために使用します。
お元気ですか、あなたはこれを行うことができます。
setInterval() - 指定された時間間隔で関数を何度も実行します。
setInterval(コード、ミリ秒、言語)
したがって、それを作成する関数を作成できます。例
<div id="one" style="display:none;"></div>
<div id="two"></div>
<script>
$(function(){
setInterval(function(){MakeToggleDivs();},1000);
});
function MakeToggleDivs(){
$('#one').fadeToggle(400);
$('#two').fadeToggle(400);
}
</script>
そして、これは動作する必要があります。動作しない場合は教えてください。
幸運を!