js图片懒加载





Document


*{
margin: 0;padding:0;list-style: none;
}
ul{
overflow: hidden;
width: 800px;
margin:0 auto;
}
li{
width: 50%;
height:500px;
border:1px solid #ccc;
box-sizing:border-box;
float:left;
overflow: hidden;
position: relative;
}
li i{
width:20px;
height:20px;
border-radius:50%;
position: absolute;
border:2px solid #f60;
left: 50%;
top:50%;
margin-top:-11px;
margin-left:-11px;
animation:move 1s infinite;
}
li i:before{
position: absolute;
width: 5px;
height: 5px;
border-radius:50%;
content: “”;
box-shadow: :0 0 10px #666;
background: #fff;
border:1px solid #fff;
top:-3px;
left: 50%;
margin-left: -3px;
}
img{
vertical-align: middle;
position: relative;
width: 100%;
height: 500px;
}
@keyframes move{
0%{
transform:rotateZ(0);
}
100%{
transform:rotateZ(360deg);
}
}




<script src="jquery-1.8.3.min.js"></script>

<script>
    var ul=document.getElementsByTagName("ul")[0];
    var uli=document.getElementsByTagName("li");
    //创建img标签
    function creatImg(obj){
        var src="";
        if(obj.dataset.src){
            src=obj.dataset.src;
        }else{
            src=obj.getAttribute('data-src');
        }
        if(obj.children.length<=1){
            var img=document.createElement('img');
            img.src=src;
            obj.appendChild(img);
        }
    }

    //获取每个li的offsetTop 
    function getTop(obj){
        var top=0;
        while(obj){
            top+=obj.offsetTop;
            obj=obj.offsetParent;
        }
        return top;
    }

    //绑定滚动条事件 判断滚动条距离大于每个li到页面顶部的距离,创建img

    window.onscroll=function(){
        var tops=document.documentElement.clientHeight + (document.body.scrollTop || document.documentElement.scrollTop);

        for(var i=0;i<uli.length;i++){
            if(getTop(uli[i])<tops){
                setTimeout('creatImg(uli['+i+'])',500);
            }
        }
    }
    //页面加载完执行一次滚动函数
    window.onload=function(){
        window.onscroll();
    }
</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值