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


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 相关文章推荐
JQuery 绑定事件时传递参数的实现方法
Oct 13 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
Mar 01 Javascript
JavaScript起点(严格模式深度了解)
Jan 28 Javascript
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
javascript中获取class的简单实现
Jul 12 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
Dec 14 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
JavaScript实现简单动态表格
Dec 02 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安装攻略:常见问题解答(一)
2006/10/09 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
javascript Base类 包含基本的方法
2009/07/22 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
python集合类型用法分析
2015/04/08 Python
python编程实现归并排序
2017/04/14 Python
Python简单的制作图片验证码实例
2017/05/31 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
python样条插值的实现代码
2018/12/17 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python 元组和列表的区别
2020/12/30 Python
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
资料员的岗位职责
2013/11/20 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
捐书活动倡议书
2015/04/27 职场文书
JavaScript执行机制详细介绍
2021/12/06 Javascript
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫