1

私は2つのdivを持っています。1 つは黒の背景で、もう 1 つは紫です。jquery を使用して、黒い div をフェードアウトし、紫色の div をフェードインします。ただし、両方が同時に発生しようとしているようです。

私の質問は、紫色の div が完全にフェードアウトした後にのみ、紫色の div をフェードインさせる方法です。queue メソッドは聞いたことがありますが、使い方がよくわかりません。

$("div.black").fadeOut();
$("div.purple").fadeIn().queue(); // <-- purple div still trys to fade in
// while black div is fading out.  
// I need the purple div to wait 
// until that black div has completely faded out.
4

4 に答える 4

10

このような

$("div.black").fadeOut(function(){
    $("div.purple").fadeIn();
});
于 2013-10-14T16:47:56.223 に答える
3

コールバックを使用してこれを試してください

$("div.black").fadeOut(400,function(){
    $("div.purple").fadeIn().queue();
});
于 2013-10-14T16:48:34.807 に答える
2

フェードイン / フェードアウトは、パラメーターの 1 つとしてコールバック関数を受け取ります。その関数は、アニメーションが完了するとすぐに実行されます。

$(".black").fadeOut(function() {
    // this will run once the fadeOut animation is complete
    $(".purple").fadeIn();
});

フィドル: http://jsfiddle.net/fAbBn/

于 2013-10-14T16:52:20.577 に答える
0

関数と待機時間をミリ秒単位で取る setTimeout の使用を検討できます。私はこのようなものがうまくいくはずだと思います:

$("div.black").fadeOut(500);
setTimeout(function() {
    $("div.purple").fadeIn()
}, 600)
于 2013-10-14T16:50:43.340 に答える