日期:2014-05-16  浏览次数:20318 次

js控制图片延时加载

注重网页显示速度的常用这个手段。意思就是滚动条没滚到的就先不加载。

整理了下网上资料,总结如下。

原理:

1.先不把img标签的src赋实际的图片路径

2.将图片路径保存在img的name属性中

3.js判断图片是否在可视窗口内,取出name的值,赋给src,此刻才加载图片。

我这里使用的是jquery。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script src="http://blog.suiyidian.cn/texiao/jquery-1.3.1.js" type="text/javascript"></script>
<title>js图片延时加载特效</title>
<script type="text/javascript">
    $(function () {
        var d = new Array();
        for (var i = 0; i < $("img").length; i++) {
            d[i] = $("img").eq(i).attr("name");
        }
        
        for (i = 0; i < $("img").length; i++) {
            if ($("img").eq(i).offset().top > document.documentElement.clientHeight + $(window).scrollTop()) {
                $("img").eq(i).attr("src", "hc.gif");
            } else {
                $("img").eq(i).attr("src", d[i]);
            }
        }

        $(window).scroll(function () {
            for (i = 0; i < $("img").length; i++) {
                if ($("img").eq(i).offset().top > document.documentElement.clientHeight + $(window).scrollTop()) {
                    $("img").eq(i).attr("src", "hc.gif");
                } else {
                    $("img").eq(i).attr("src", d[i]);
                }
            }
        });
    })
</script>
</head>
<body>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/>
<img name="http://bbs.525j.com.cn/upload/uploadfile/2005-9/200592922650386.jpg" src="hc.gif"  />
<br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/>
<img name="http://bbs.525j.com.cn/upload/uploadfile/2005-9/200592922650386.jpg" src="hc.gif"  />
<br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/>
<img name="http://bbs.525j.com.cn/upload/uploadfile/2005-9/200592922650386.jpg" src="hc.gif"  />
<br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/>
<img name="http://bbs.525j.com.cn/upload/uploadfile/2005-9/200592922650386.jpg" src="hc.gif"  />
<br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/>