我在使用JS预加载图像时遇到了一些问题。我有一个小提琴,我试图创建三个图像对象并逐个加载它们,但我只得到一个图像?任何帮助表示赞赏。
http://jsfiddle.net/gq1oqnxb/1/
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var images = new Array();
images[0] = 'http://hdcomputerwallpaper.com/wp-content/uploads/2013/12/Puppy-images.jpg';
images[1] = 'http://hdcomputerwallpaper.com/wp-content/uploads/2013/12/Puppy-images.jpg';
images[2] = 'http://wallfc.com/wp-content/uploads/2014/09/Little-Birds.jpg';
var i = 0;
while(i < images.length){
var image = new Image(50,50);
image.src = images[i];
image.onload = function(){
$('body').append(image);
i++;
}
i++
}
});
</script>
</head>
<body>
</body>
答案 0 :(得分:1)
imageLoader(0); //call the function with first image to load `0` as index starts from `0`
function imageLoader(i) { //function to load images one by one and pass the array index
var image = new Image(50, 50); //create a new image
image.src = images[i]; //set src of the image from images array
image.onload = function () { //on image load
$('body').append(image); //append to the the body
if (++i >= images.length) return; //increment i check the length of images is exceeded than return
imageLoader(i); //more images are present in array then call the function again
}
}