1

私はこのコードを持っています。不透明度 0 と不透明度 1 が機能します。しかし、load(pagina) は読み込まれません。なんで?

function cargarContenido(pagina) {
    $('#content').animate({"opacity":"0"});
    if ($('#content').css('opacity') == 0) {
        $("#content").load(pagina);
    }
    $('#content').animate({ "opacity": "1" });
}

これだけ入れれば問題なく動きます

function cargarContenido(pagina) {
    $("#content").load(pagina);
}
4

5 に答える 5

5

コードを順番に実行するには、 メソッドanimateとメソッドのコールバック パラメータを使用する必要があります。loadこれを試して:

function cargarContenido(pagina) {
    $('#content').animate(
        { "opacity": "0" }, 
        function() {
            $("#loadimage").show(); // show a loading image
            // load content when opacity = 0 animation finished
            $("#content").load(
                pagina, 
                function() {
                    $("#loadimage").hide(); // hide a loading image
                    // make opacity = 1 when content has been loaded
                    $('#content').animate({ "opacity": "1" });
                }
            )
        }
    );
}

何が起こっているのかを明確にするために、このコードのフォーマットを拡張したことに注意してください。必要に応じて、多くの間隔を削除して短くすることができます。

于 2013-01-18T10:16:39.353 に答える
2

animate()は非同期であるため、アニメーション機能がまだ終了していないため、不透明度をチェックしているときにゼロではありません。アニメーションでコールバックを使用して、不透明度のアニメーションが終了した後に同じことを行うことができます。

function cargarContenido(pagina) {
    $('#content').animate({"opacity":"0"}, function() {
        $(this).load(pagina, function() {
            $(this).animate({ "opacity": "1" });
        });
    });
}
于 2013-01-18T10:16:45.777 に答える
0

アニメーション終了後に実行されるので、コールバック関数ではアニメーション終了後に行うとよいと思います。関数に関するドキュメントを読んで、complete

   $('#content').animate({"opacity":"0"},500,function(){
                     $("#content").load(pagina,function(){
                         $('#content').animate({ "opacity": "1" });
                     });             
     });
于 2013-01-18T10:17:41.073 に答える
0

あなたがやりたいことは、#content の不透明度が 0 の後に「ページナ」をロードすることだと思いますか? 不透明度が 0 かどうかを尋ねる代わりに、完全なパラメーターを使用する必要があります。

function cargarContenido(pagina){

$('#content').animate({"opacity":"0"}, 1000, function(){

    $("#content").load(pagina, function(){

          $('#content').animate({ "opacity": "1" });

    });

});

}

于 2013-01-18T10:19:36.940 に答える
-1

animate の追加の引数を使用してみてください。

$('#content').animate({"opacity":"0"}, slow, function() {
    $("#content").load(pagina);
    $('#content').animate({ "opacity": "1" });
});
于 2013-01-18T10:16:55.977 に答える