马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

图片根据浏览位置加载,图片懒加载

[复制链接]
查看3458 | 回复0 | 2017-6-29 08:57:54 | 显示全部楼层 |阅读模式
在图片比较多的网站总会看见,当浏览到那个位置,就加载那的图片。


[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            img{
                display: block;
                width: 500px;
                height: 300px;
            }
            div{
                margin: 500px 0 0 40px;
            }
        </style>
    </head>
    <body>
        <div id="banner">
            <img data-src="image/01.jpeg">
            <img data-src="image/02.jpeg">
            <img data-src="image/03.jpeg">
            <img data-src="image/04.jpeg">
            <img data-src="image/05.jpg">
            <img data-src="image/06.png">
            <img data-src="image/07.png">
            <img data-src="image/08.png">
        </div>
 
        <script type="text/javascript">
            window.onload=function(){
                var banner=document.getElementById("banner");
                var imgs=banner.getElementsByTagName("img");
                 add();//页面加载完成先执行一次
                function getTop(obj){ //写一个方法获取图片距离top的值
                    var t=0;      //定义一个保存top值的 变量
                    while(obj){  //循环获取每个父级定位的top值
                        t+=obj.offsetTop;  //获取传入或改变父级定位的top值,当到大body的时候没有 他的父级定位为null所以就停了
                        obj=obj.offsetParent; //获取obj的父级定位
                        console.log(t)
                        console.log(obj)
                    }
                    return t;
                }
                function add(){
                    var S = document.documentElement.scrollTop || document.body.scrollTop; //获取滑动条距top的值
                    var H = window.innerHeight; //获取显示区域高度(只读)
                    for(var i=0;i<imgs.length;i++){  //循环图片
                        if((S+H) > getTop(imgs[i])){ 判断图片是否进入可视区域
                            imgs[i].setAttribute("src",imgs[i].getAttribute("data-src")); //当进入的时候给src 赋值
                        }
                    }
                }
                 
                window.onscroll=function(){ //每次滚动运行方法判断
                    add()
                }
            }
                 
                 
                 
             
        </script>
    </body>
</html>

C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则