0

すべてのページ要素にアクセスできるようになる前に、JavaScript の 3 つのファイル (かなり大きい) をロードする必要があるページがあります。リンクの 1 つがクリックされると、ロードが停止し、ページ全体がスクリプトを正しくロードしません。

すべてが読み込まれる前にページを黒くするオーバーレイでページをマスクすることで解決策を作ります。だから私のページの上に置いた

$(".black-overlay").show();

これは、9999 の z-index でページ全体をマスクする div です。次に、ページが読み込まれた後、

$(function() { $(".black-overlay").hide(); });

私が読んだソースからは、ドキュメントの準備ができている機能と同じであるため、ページの読み込み後にオーバーレイが消えます。

私の問題は、これは時々しか機能しないことです。1 つのケースでは、オーバーレイは消えましたが、リンクはまだ壊れています (スクリプトがまだロードされていないことを意味します)。別のケースとして、次のような場合にオーバーレイが表示されないことがあります: 別のページに移動してからメイン ページに戻ると、メイン ページで、スクリプトが再度読み込まれている必要があるため、オーバーレイが再度表示されている必要があります。しかし、時々、それはうまく機能します。

この問題に対するよりクリーンな解決策はありますか?

[編集] これは特に、ウェブサイトへのインターネット接続が非常に遅い場合に発生します。

4

1 に答える 1

3

デフォルトではボディを非表示にします。つまり<body style="display:none;"> 、ドキュメントのロード時に表示します(フェードインもできますが、これは常に楽しいです):

$(document).load( function() { $('body').fadeIn(); });

コードにできる限り最新のものを入れれば、(うまくいけば) 常に動作します。

于 2013-08-21T10:10:10.800 に答える