码迷,mamicode.com
首页 > 其他好文 > 详细

按需加载的第一次尝试

时间:2014-11-11 18:32:25      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   java   sp   for   div   

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>layImg</title>
<style>
*{ margin:0; padding:0;}
img{ display:block; width:200px; height:200px; background:#F6C}
</style>
</head>
<body>
<img _src="0.png" />
<img _src="1.png" />
<img _src="2.png" />
<img _src="3.png" />
<img _src="4.png" />
<img _src="5.png" />
<img _src="6.png" />
<img _src="7.png" />
<img _src="8.png" />
<img _src="9.png" />
<img _src="10.png" />
<img _src="11.png" />
</body>
</html>
<script type="text/javascript">
window.onload=function(){
    var scrTop=document.documentElement.scrollTop||document.body.scrollTop;
    var cHeight=document.documentElement.clientHeight;
    var cha    =cHeight+scrTop;
    var aImg=document.getElementsByTagName("img");
    for(var i=0;i<aImg.length;i++){
        if(!aImg[i].getAttribute("src")){
                if(aImg[i].offsetTop<=cha){
                    var src=aImg[i].getAttribute("_src");
                    aImg[i].setAttribute("src",src)
                }
            }
    }
    window.onscroll=function(){
        var scrTop=document.documentElement.scrollTop||document.body.scrollTop;
        var cha    =cHeight+scrTop;
        for(var i=0;i<aImg.length;i++){
            if(!aImg[i].getAttribute("src")){
                if(aImg[i].offsetTop<=cha){
                    var src=aImg[i].getAttribute("_src");
                    aImg[i].setAttribute("src",src)
                }
            }
        }
    }
}

</script>

原理很简单,滚动条的高度值和每一个没有src属性的图片的高度比较,但是这样一玩的话,图片的高度就得写死了,不然图片没有高度还求什么,其实还有bug的,例如,假如img在一个相对定位的div里面的话,它的offsetTop就是很小的,这样就会在不需求加载的时候加载了,这样问题其实是出在offsetTop上面的,明天写个方法,替换了它,名字就叫topToBody,呵呵

按需加载的第一次尝试

标签:style   blog   io   color   ar   java   sp   for   div   

原文地址:http://www.cnblogs.com/busicu/p/4090012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!