• 懒加载


    js 实现懒加载

    原理:利用scrollTop+盒子的高度与图片的offsetTop进行比较,如果大于  说明就在视窗内,将图片盒子的地址更改路径即可

    代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>lazyload</title>
        <style>
        #pictures{
            width: 900px;
            border: 1px solid #ccc;
            overflow: hidden;
        }
        .picture{
            float:left;
            width:250px;
            height:250px;
            margin: 10px 20px;
            border:1px solid #ccc;
     
        }
        </style>
        
    </head>
    <body>
        <div id="pictures">
            <img data-original="images/1.png" alt="" class="picture" src=""  >
            <img data-original="images/2.png" alt="" class="picture" src=""  >
            <img data-original="images/3.png" alt="" class="picture" src=""  >
            <img data-original="images/4.png" alt="" class="picture" src=""  >
            <img data-original="images/5.png" alt="" class="picture" src=""  >
            <img data-original="images/6.png" alt="" class="picture" src=""  >
            <img data-original="images/7.jpg" alt="" class="picture" src=""  >
            <img data-original="images/8.jpg" alt="" class="picture" src=""  >
            <img data-original="images/9.jpg" alt="" class="picture" src=""  >
            <img data-original="images/10.jpg" alt="" class="picture" src=""  >
            <img data-original="images/11.jpg" alt="" class="picture" src=""  >
            <img data-original="images/12.jpg" alt="" class="picture" src=""  >
            <img data-original="images/13.jpg" alt="" class="picture" src=""  >
            <img data-original="images/14.png" alt="" class="picture" src=""  >
            <img data-original="images/15.png" alt="" class="picture" src=""  >
            <img data-original="images/16.png" alt="" class="picture" src=""  >
            <img data-original="images/17.png" alt="" class="picture" src=""  >
            <img data-original="images/18.png" alt="" class="picture" src=""  >
            <img data-original="images/19.png" alt="" class="picture" src=""  >
            <img data-original="images/20.png" alt="" class="picture" src=""  >
            <img data-original="images/21.png" alt="" class="picture" src=""  >
            <img data-original="images/22.png" alt="" class="picture" src=""  >
            <img data-original="images/23.png" alt="" class="picture" src=""  >
            <img data-original="images/24.png" alt="" class="picture" src=""  >
     
        </div>
        <script>
            var images=document.getElementsByTagName('img');
            function lazyload() {
                Array.prototype.forEach.call(images,function(item,index) {
                    var height=document.documentElement.clientHeight;                
                    var scrollTop=document.documentElement.scrollTop;                
                    var offsetTop=item.offsetTop;                
                    //只要下方的图片滚动视图区域
                    if(scrollTop+height>offsetTop){                    
                        //此处是加载图片 ,必须要
                        var img = new Image();                    
                        img.onload = function () {                               
                            item.src = img.src;
                        }
                        item.src = item.dataset.original;   
                    }                            
                });  
                //以下方法是不能的  滚动的时候会全部一次性重新刷新图片
                /*for(var i = 0;i < images.length; i++){
                    let item = images[i]
                    var height=document.documentElement.clientHeight;                
                    var scrollTop=document.documentElement.scrollTop;                
                    var offsetTop=item.offsetTop;                
     
                    if(scrollTop+height>offsetTop){                    
                        
                        var img = new Image();                    
                        img.onload = function () {                               
                            item.src = img.src;
                        }
                        img.src = item.dataset.original;   
                    }              
                }*/
            }
            lazyload();                   //第一次加载页面时需要自动加载
     
            document.addEventListener("scroll",lazyload); 
     
        </script>
    </body>
    </html>
  • 相关阅读:
    kmp dp hdu 3336
    Python之路【第三篇】:Python基础(18)——函数万能参数
    Python之路【第三篇】:Python基础(17)——函数动态参数
    Python之路【第三篇】:Python基础(16)——函数动态参数
    Python之路【第三篇】:Python基础(15)——函数指定参数
    Python之路【第三篇】:Python基础(13)——函数普通参数
    Python之路【第三篇】:Python基础(14)——函数默认参数
    Python之路【第三篇】:Python基础(12)——函数
    Python之路【第三篇】:Python基础(11)——set集合
    Python之路【第三篇】:Python基础(10)——set集合
  • 原文地址:https://www.cnblogs.com/pengfei25/p/11190457.html
Copyright © 2020-2023  润新知