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


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实现的支持lrc歌词的播放器
May 17 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
Jan 08 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
Jul 12 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
JS实现动态生成表格并提交表格数据向后端
Nov 25 Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
详解Angular的数据显示优化处理
Dec 26 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
js基于canvas实现时钟组件
Feb 07 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python字典序问题实例
2014/09/26 Python
Python中的random()方法的使用介绍
2015/05/15 Python
Python内置函数delattr的具体用法
2017/11/23 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python得到电脑的开机时间方法
2018/10/15 Python
python安装pil库方法及代码
2019/06/25 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
建筑设计专业求职自我评价
2014/03/02 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
西柏坡观后感
2015/06/08 职场文书
员工旷工检讨书
2015/08/15 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis