我正在尝试制作图像预加载器。有一组低分辨率图像和一组高分辨率图像。我创建了一个新的图像对象并通过一个循环来预加载这些图像。然后,我使用一行 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] + ')'});
}