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


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 相关文章推荐
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 Javascript
jquery ajax return没有返回值的解决方法
Oct 20 Javascript
jquery自动将form表单封装成json的具体实现
Mar 17 Javascript
省市选择的简单实现(基于zepto.js)
Jun 21 Javascript
jQuery实现发送验证码并60秒倒计时功能
Nov 25 Javascript
js倒计时显示实例
Dec 11 Javascript
Angular4集成ng2-file-upload的上传组件
Mar 14 Javascript
小程序实现左右来回滚动字幕效果
Dec 28 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
Mar 28 Javascript
浅谈VUE中演示v-for为什么要加key
Jan 16 Javascript
js实现ajax的用户简单登入功能
Jun 18 Javascript
javascript+css实现俄罗斯方块小游戏
Jun 28 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
执行iframe中的javascript方法
2008/10/07 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
mac系统安装Python3初体验
2018/01/02 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
Python中logger日志模块详解
2020/08/04 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
薪酬专员岗位职责
2014/02/18 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python