6

一度に複数の div をフェードアウトし、完了後に 1 つの div をフェードインしようとしています。コードは次のとおりです。

if($(this).attr("id")==="benefits-button"){

    $("#solar-about, #home-page, #process-page, #financing-page, #vendors-page, #consump-info-page, #smart-page, #wind-page, #about-page").fadeOut(750, function() {
         $("#benefits-page").fadeIn(750);
    });
    }

セレクターに複数の div がある場合、fadeOut と fadeIn が同時に発生します。

質問:フェードアウトの後にフェードインを取得するにはどうすればよいですか?

ありがとうございました

4

1 に答える 1

17
$("#benefits-page").fadeIn(750);

最初の要素(例では #solar-about )のfadeOutアニメーションが完了すると機能し始めるため、すぐに機能します。

すべてのアニメーションが完了するまで待ちたい場合は、次のように.promise()を使用できます。

$("#solar-about, #home-page, #process-page, #financing-page, #vendors-page, #consump-info-page, #smart-page, #wind-page, #about-page").fadeOut(750).promise().done(function() {
     $("#benefits-page").fadeIn(750);
});

デモ

于 2012-04-22T23:24:27.643 に答える