当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 又一个小巧的图片预加载类

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

2019年08月01日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:<!doctype html public "-//w3c//dtd xhtml 1.0&nbs
复制代码 代码如下:

<!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>

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网