OK、私はこれについて頭がおかしくなっています。私はここでSOとグーグルでそれについて読みました、私はプリローダーセット(ここでSOにあります)さえ持っています、しかし私が見つけたプラグイン/コードのどれも私を助けませんでした。
私がやりたいのは、すべての画像がプリロードされるまで待ってから、他のすべてのJavaScriptコードを実行することです。私に関する限り、「読み込み中...」というメッセージが表示される場合があります(必須ではありません)。
実際、私は体の背景にかなり大きな画像があり、他の2つの画像も大きいので、それらをプリロードして、すぐに表示され、その醜い「読み込み」画像効果がないようにします。
これは私が今使っているものですが、良くありません:
$(document).ready(function()
{
preloadImages();
...some other code...
function preloadImages(){
imagePreloader([
'images/1.png',
'images/2.jpg',
'images/3.png',
]);
}
function imagePreloader(arrayOfImages) {
$(arrayOfImages).each(function(){
(new Image()).src = this;
});
}
}
わかりません。おそらく、このプリローダーを.ready()のどこかで呼び出す必要がありますか?またはそのようなsth、助けてください...
ところで、はい、私もこの投稿を読みました。理由はわかりませんが、.ready()の方が高速です:(
編集:
わかりました、それで最終的に私はこれを機能させることができました。私の問題?待機中のdivを間違って設定していました。これが私のコードです。すべての上に表示する読み込みdivがあり、すべての画像が読み込まれると($(window).load(function(){...})を使用)、提案されているように、そのdivを非表示にします。
<div id="loading">
<div id="waiting">
<img class="loadingGif" src="images/loading.gif">
</div>
</div>
#loading
{
background-size: 100%;
background-color:#000;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
z-index:999;
}
#waiting
{
margin-left: auto;
margin-right: auto;
position:absolute;
top: 39%;
left: 27.81%;
width: 45%;
height: 150px;
background-color: #FFF;
border: 12px solid #FF771C;
text-align: center;
}
そして私のjQueryコードはこれです:
$(window).load(function()
{
$('#loading').addClass('hidden');
...
}