又一个小巧的图片预加载类


Posted in Javascript onMay 05, 2007
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
var IE=navigator.appName=="Microsoft Internet Explorer"; 
var Opera=navigator.appName.toLowerCase()=="opera"; 
var FF=!IE && !Opera; 
function LoadImage(arrSrc,callBack) 
{ 
    this.Length=arrSrc.length; 
    this.LoadedLen=0;    //已经被加载的图片个数 
    var self=this; 
    if(self.Length<1) 
    { 
        callBack(arrSrc); 
        return; 
    }     //经测试,OPERA与别的浏览器加载方式不同,所以特别独立开来... 
    if(Opera) 
    { 
        for(var i=0;i<self.Length;i++) 
        { 
            var tmpImg=new Image(); 
            tmpImg.src=arrSrc[i]; 
            tmpImg.onload=function() 
            { 
                self.LoadedLen++; 
                if(self.LoadedLen==self.Length && callBack)    callBack(arrSrc); 
            } 
        } 
        return; 
    } 
    this.Load=function() 
    { 
        self.LoadedLen++; 
        document.getElementById("counter").innerHTML=self.LoadedLen; 
        if(self.LoadedLen<self.Length)    self.DownImg(); 
        else if(callBack)    callBack(arrSrc); 
    } 
    this.DownImg=function() 
    { 
        var tmpImg=new Image(); 
        tmpImg.src=arrSrc[self.LoadedLen]; 
        if(IE) 
        { 
            if(tmpImg.readyState=="complete")    self.Load(); 
            else    tmpImg.onreadystatechange=function() 
            { 
                if(this.readyState=="complete")    self.Load(); 
            } 
        } 
        else    tmpImg.onload=self.Load; 
    } 
    this.DownImg(); 
} 
//--> 
</SCRIPT> 
</HEAD> 
<BODY> 
<div id="counter"></div> 
 <SCRIPT LANGUAGE="JavaScript"> 
 <!-- 
    var arr=['http://photo.hjbbs.com/photo/20060531/20060531103027226_756_o.jpg','http://img1.soufun.com/bbs/2007_02/13/1171345302199.jpeg','http://img.c8c8.cn/2006/09/09/15032/pp20060909002749.jpg']; 
    var t=new LoadImage(arr,function(arr) 
    { 
        var str=""; 
        for(var i=0;i<arr.length;i++) 
        { 
            str+="<img src='"+arr[i]+"' /><br>"; 
        } 
        document.body.innerHTML+=str; 
    }); 
 //--> 
 </SCRIPT> 
</BODY> 
</HTML>
Javascript 相关文章推荐
理解JavaScript的prototype属性
Feb 11 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
js怎么终止程序return不行换jfslk
May 30 Javascript
javascript闭包传参和事件的循环绑定示例探讨
Apr 17 Javascript
js实现内容显示并使用json传输数据
Mar 16 Javascript
深入浅析JavaScript中的作用域和上下文
Mar 26 Javascript
探究react-native 源码的图片缓存问题
Aug 24 Javascript
node上的redis调用优化示例详解
Oct 30 Javascript
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
Vue3 响应式侦听与计算的实现
Nov 11 Javascript
用JS写一个发布订阅模式
Nov 07 Javascript
pnpm对npm及yarn降维打击详解
Aug 05 Javascript
清华大学出版的事半功倍系列 javascript全部源代码
May 04 #Javascript
用js实现的抽象CSS圆角效果!!
May 03 #Javascript
学习jquery必备 api中英文对照的chm手册 下载
May 03 #Javascript
Packer 3.0 JS压缩及混淆工具 下载
May 03 #Javascript
javascript+dom树型菜单类,希望朋友们一起进步
May 03 #Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
May 03 #Javascript
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 #Javascript
You might like
PHP 第二节 数据类型之数组
2012/04/28 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
node网页分段渲染详解
2016/09/05 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Python阶乘求和的代码详解
2020/02/14 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
用Python进行websocket接口测试
2020/10/16 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
工厂门卫岗位职责
2013/11/25 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
个人担保书格式范文
2014/05/12 职场文书
财务会计专业自荐书
2014/06/30 职场文书
保密工作目标责任书
2014/07/28 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
Python中的 Set 与 dict
2022/03/13 Python