• 按需加载的第一次尝试


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

  • 相关阅读:
    MVC是什么?
    Slice Header中的field_pic_flag的含义?
    Slice header 中的frame_num的含义?
    上下文管理器 contextlib
    mixin模式特点
    Flask中路由原理
    使用Docker搭建Django,Nginx,R,Python部署环境
    使用Docker+Jenkins自动构建部署
    Jenkins 关闭和重启
    使用pipenv管理python项目
  • 原文地址:https://www.cnblogs.com/busicu/p/4090012.html
Copyright © 2020-2023  润新知