图片预加载

 function  preload(callback) {  
   var imageObj = new Image(); 
   images = new Array(); 
   images[0]="pre_image1.jpg"; 
   images[1]=" pre_image2.jpg"; 
   images[2]=" pre_image3.jpg"; 
   for(var i=0; i<=2; i++) { 
       imageObj.src=images[i]; 
      if (imageObj.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
          callback.call(imageObj); 
       } else { 
        imageObj.onload = function () {// 图片下载完毕时异步调用 callback 函数
             callback.call(imageObj);// 将回调函数的 this 替换为 Image 对象
         }; 
      } 
   } 
 } 
 function callback(){ 
    alert(this.src + “已经加载完毕 , 可以在这里继续预加载下一组图片”); 
 }

CSS(background)、JS(Image)、HTML(<img />)都可以。常用的是new Image();,设置其src来实现预载,再使用onload方法回调预载完成事件。只要浏览器把图片下载到本地,同样的src就会使用缓存,这是最基本也是最实用的预载方法
posted @ 2014-04-04 00:26  momofan  阅读(171)  评论(0编辑  收藏  举报