5

Jquery UI プログレス バーを使用して、Web サイトの読み込みプログレス バーを作成しました。このプログレス バーには、スクリプトの読み込みのステータスが表示されます。サンプルは

$.getScript('_int/ajax.js',function() {
    $("#progressinfo").html("Loading Complete ...");
    $("#progressbar").progressbar({ value: 100 });
});

この進行状況バーは#indexloader、Web サイトの読み込みをブロックしています。その CSS は次のとおりです。

#indexloader {
    z-index:100;
    position:fixed;
    top:0;
    left:0;
    background:#FFF;
    width:100%;height:100%;
}

プログレスバーが に達したら、使用したもの100%を非表示にして削除したい#indexloader

$("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); });

しかし、問題は、スクリプトがロードされたにもかかわらず、ページが完全にロードされておらず、画像やその他のものがまだロードされていることです。

フェードして削除する前に、が完了し#indexloaderたかどうかを確認したい$(window).load()

これを確認する方法はありますか?

4

2 に答える 2

10

プロパティを に追加window:

$(window).load(function() {
    window.loaded = true;
});

次にwindow.loaded、非表示にする前に確認します#indexloader

于 2010-04-27T00:22:14.597 に答える
1

window.loadオプションでローダーをフェードアウトしていますか? あなたが望むことをする最も簡単な方法のようです:

$(window).load(function() {
  $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); });
});

window.loadまたは、次のように on に変数を設定します。

var loaded = false;
$(window).load(function() { loaded = true; });

次に、フェードアウト コードを変更して探します。

function fadeIndex() {
  $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); });
}
if (loaded) fadeIndex(); //aleady loaded
else $(window).load(fadeIndex); //fade when we do load
于 2010-04-27T00:22:14.407 に答える