イメージのプリローダーを作成しようとしています。低解像度画像の配列と高解像度画像の配列があります。新しい画像オブジェクトを作成し、ループを実行してこれらの画像をプリロードします。次に、Jquery の行を使用して、高解像度のオブジェクトが読み込まれるまで低解像度の画像を使用するように背景を設定します。それが読み込まれると、Jquery の別の行を使用して、この高解像度の画像を使用するように背景を切り替えます。
私が抱えている問題は、コードが低解像度の背景設定をスキップし、高解像度の画像をロードすることです。
コードは次のとおりです。
// Low res image array
var lowres = ["image1lr.jpg", "image2lr.jpg", "image3lr.jpg", "image4lr.jpg"];
// Full res image array
var images = ["image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg"];
// Low res image path
var lowresimagepath = "url(images/rotate-background/low_res/";
// Full res image path
var imagepath = "url(images/rotate-background/";
// Counter
var i = 0;
// Image preloading
for(i=0; i<=images.length; i++)
{
// Create object
imageObj = new Image();
imageObj.src = imagepath + images[i] + ')';
}
//Generate random number
var rannum = Math.floor(Math.random() * images.length);
//Set background image to random low res image
$(".bg_home").css({'background-image': lowresimagepath +lowres[rannum]+')'});
//Once image objects are loaded switch to high res image
imageObj.onLoad= function(){
$(".bg_home").css({'background-image': imagepath + images[rannum] + ')'});
}