图片预加载和判断图片是否加载完成

  1. 1. 使用Image()对象预加载图片:
  2. 2. 使用img.onload,当图片加载完成时执行操作:
  3. 3. 判断图片是否已经加载完成则:需要判断 img.complete属性是否为true:
  4. 4. 优化刚刚的预加载函数,封装一个预加载非固定数目图片的函数
  5. 5. Image对象的其他方法:

使用Image()对象预加载图片:

var imgsSrcArray = [src1, src2, src3, src4, src5];
需要预加载这些图片,以便点击上一张或下一张按钮的时候,能显示对应的图片。
使用JS自带的 Image对象 实现图片预加载:
[javascript]
var images= [];
var len = imgsSrcArray.length;
for(var i = 0; i < len; i++) {
var img = new Image();
img.src = imgsScrArray[i];
images.push(img)
}
[/javascript]

这样就实现了将多个图片进行了预加载,缓存到了images数组里。

使用img.onload,当图片加载完成时执行操作:

[javascript]
img.onload = function(){
// console.log(‘图片加载完成’)
};
[/javascript]

判断图片是否已经加载完成则:需要判断 img.complete属性是否为true:

if (img.complete) {
// 执行操作
}

优化刚刚的预加载函数,封装一个预加载非固定数目图片的函数

[javascript]
var images = [];
function preloadImgs() {
// 利用arguments参数判断需要加载的图片数目
var len = preloadImgs.arguments.length;
for (var i=0; i<len; i++) {
images[i] = new Image();
images[i].src = preloadImgs.arguments[i];
}
}
[/javascript]

// 或传入数组
[javascript]
var images = [];
function preloadImgs(srcArray) {
// 利用arguments参数判断需要加载的图片数目
var len = preloadImgs.arguments.length;
for (var i=0; i<len; i++) {
images[i] = new Image();
images[i].src = srcArray[i];
}
}
[/javascript]

Image对象的其他方法:

img.onabort() 图片加载被中断时执行
img.onload() 图片加载成功时执行
img.onerror() 图片加载失败时执行

Image对象的其他属性可见参考资料:
参考资料
参考资料
参考资料