Я пытаюсь сделать предварительный загрузчик изображения. Существует массив изображений с низким разрешением и массив изображений с высоким разрешением. Я создаю новый объект изображения и запускаю цикл для предварительной загрузки этих изображений. Затем я использую строку 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] + ')'});
}
imageObj.onLoad = function(){......}
- person Aram Alipoor   schedule 29.08.2012var rannum = Math.floor(Math.random() * images.length);
- person Aram Alipoor   schedule 29.08.2012for(i=0; i<images.length; i++)
, используя литерал 3, это неправильно. - person Aram Alipoor   schedule 29.08.2012Image
для каждого изображения, поэтому переместитеnew Image()
внутри своего цикла. - person Aram Alipoor   schedule 29.08.2012