1

私は、すべてのメニューで新しいページをフェードアウト、アンロード、フェードインするためのphpページを保持するdivを探しています:

        $('#home').click(function() {
        $('#page_container').fadeOut(500).unload();
        $('#page_container').load('php/home.php').fadeIn(550);
    });

何らかの理由で、最初のインスタンスでフェードアウトし、フェードアウトしてリロードする前に、新しいページがちらつきます。

誰かがこれを手伝ってくれませんか。簡単だとは思いますが、それを機能させるための正しい構文が見つからないようです。

4

2 に答える 2

2

load()フェード関数のコールバックで呼び出しが発生するように設定する必要があります。

$("#home").on("click", function () {
    $('#page_container').fadeOut('fast', function() {
        $(this).unload();
        $(this).load('php/home.php');
    });
})

load()これは、フェードが完了すると発火します。

fadeOut()は非同期であるため、次の行は呼び出された直後に実行されます。load()コンテンツがフェードアウトし始めるとすぐにコンテンツを div にロードするため、問題が発生します。

于 2012-07-10T20:09:20.827 に答える
1

デモがないと完全に理解するのは難しいですが、コールバックの使用について調べましたか?

$('#home').click(function() {
    $('#page_container').fadeOut(500, function(){ 
        $(this).unload(); 
        $('#page_container').load('php/home.php', function(){ 
            $(this).fadeIn(550) 
        });
    });

});
于 2012-07-10T20:08:17.527 に答える