案例:懒加载

需求
多个等宽的图片进行穿插排序成六列,并且在目前显示的最后一张图片显示之后,再进行下拉时能够在进行加载其他图片,每次下拉显示20-30张图片。
实现原理
1、利用css多列布局实现瀑布流效果
2、利用js文档高度与滚动距离和窗口高度之间的关系触发内容渲染实现滚动条到窗口底部再加载内容的懒加载效果
实现代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin:0 ;
            padding: 0;
        }
        .waterFall{
            padding: 0 10px;
            column-count: 6;
        }
        img{
            width: 230px;
         margin: 10px auto;
        }
    </style>
</head>
<body>
    <div class="waterFall">
    </div>
    <script>
        var waterFall=document.querySelector(".waterFall")
            //后端的数组信息
        var arr1=["./JS学习/瀑布流img/O1CN01b9ST3r1NrNa4Lb49s_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/0584000063A655F22052EE0992830E2E.jfif",
        "./JS学习/瀑布流img/O1CN01uruvbI1m07uPSsf16_!!2199304891.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01BxWlGh2EXqM0yNN9l_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01cRHa2i1l9ukQWUB6h_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01GBJXrH1M7kR5HCLFn_!!2130151388.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01hH5h1I1rSacAH46h6_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01IX4byG1pNQxlp5CV5_!!2209064045348.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01JxEaE81GjrnBqszEH_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01K2WD6h1M7kP8B1ajB_!!2130151388.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01LK2LRf2DN1NHTgRvY_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01oaTWGa1MoLFYsVSBM_!!2-saturn_solar.png_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01OuiCDD1UuJRiM4uXY_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01oaTWGa1MoLFYsVSBM_!!2-saturn_solar.png_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01p3lAA822KlbeGPx4d_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01pgXbCy1j7VUdewn1C_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01Q1AxYB24LnmLxooqk_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01QeEODI1HCikMaLctc_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01QxVR0j1nWTXX7w8pQ_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01R6lnzB28m8yt9BNc9_!!2269027974-0-alimamacc.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/0584000063B7FCB81427220B04BDC108 (1).jfif",
        "./JS学习/瀑布流img/O1CN01uJ1sH51RcxVHtgGqE_!!2212292362133.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01U17qR61puPTm0ePxd_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01tL84AJ1ccvLSOzEdI_!!2381733622.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01SzR9cg1jo6JicwU4i_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01SC4IkC1K33BKHxTT1_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01s1ZY1b1D1UakKe4Cp_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/        O1CN018FdgfM1adiniiDm7D_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/v_170780671_m_601_m6_260_360.webp",
        "./JS学习/瀑布流img/v_170904078_m_601_m2_480_270.webp",
        "./JS学习/瀑布流img/TB1JcF0zkY2gK0jSZFgXXc5OFXa.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN015FfXMp2NMhG2uJP1h_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/v_170780671_m_601_m6_260_360.webp",
        "./JS学习/瀑布流img/O1CN0179j4IP1sUFg0TICLT_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01xlKK2u1cyRxncXwN7_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN0184d3Py1cmXeTNtqvl_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01wneMoV20EhBCUx1hy_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/0584000063B684A72052EE0992A0D187 (1).jfif",
        ]
        var arr2=["./JS学习/瀑布流img/O1CN01b9ST3r1NrNa4Lb49s_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/0584000063A655F22052EE0992830E2E.jfif",
        "./JS学习/瀑布流img/O1CN01uruvbI1m07uPSsf16_!!2199304891.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01BxWlGh2EXqM0yNN9l_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01cRHa2i1l9ukQWUB6h_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01GBJXrH1M7kR5HCLFn_!!2130151388.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01hH5h1I1rSacAH46h6_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01IX4byG1pNQxlp5CV5_!!2209064045348.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01JxEaE81GjrnBqszEH_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01K2WD6h1M7kP8B1ajB_!!2130151388.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01LK2LRf2DN1NHTgRvY_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01oaTWGa1MoLFYsVSBM_!!2-saturn_solar.png_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01OuiCDD1UuJRiM4uXY_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01oaTWGa1MoLFYsVSBM_!!2-saturn_solar.png_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01p3lAA822KlbeGPx4d_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01pgXbCy1j7VUdewn1C_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01Q1AxYB24LnmLxooqk_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01QeEODI1HCikMaLctc_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01QxVR0j1nWTXX7w8pQ_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01R6lnzB28m8yt9BNc9_!!2269027974-0-alimamacc.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/0584000063B7FCB81427220B04BDC108 (1).jfif",
        "./JS学习/瀑布流img/O1CN01uJ1sH51RcxVHtgGqE_!!2212292362133.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01U17qR61puPTm0ePxd_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01tL84AJ1ccvLSOzEdI_!!2381733622.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01SzR9cg1jo6JicwU4i_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01SC4IkC1K33BKHxTT1_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01s1ZY1b1D1UakKe4Cp_!!0-saturn_solar.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/        O1CN018FdgfM1adiniiDm7D_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/v_170780671_m_601_m6_260_360.webp",
        "./JS学习/瀑布流img/v_170904078_m_601_m2_480_270.webp",
        "./JS学习/瀑布流img/TB1JcF0zkY2gK0jSZFgXXc5OFXa.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN015FfXMp2NMhG2uJP1h_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/v_170780671_m_601_m6_260_360.webp",
        "./JS学习/瀑布流img/O1CN0179j4IP1sUFg0TICLT_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01xlKK2u1cyRxncXwN7_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN0184d3Py1cmXeTNtqvl_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/O1CN01wneMoV20EhBCUx1hy_!!0-item_pic.jpg_300x300q90.jpg_.webp",
        "./JS学习/瀑布流img/0584000063B684A72052EE0992A0D187 (1).jfif",
        ]
        //将数据放射到html中
        function renderImg(arr){
            for(var i=0;i<arr.length;i++){
            var img=document.createElement("img")
            img.src=arr[i]
            waterFall.appendChild(img)
        }
        }
        renderImg(arr1)
        //防止画面渲染在滚动条一滚动就触发
        var isloading=false
        //滚动滚动条就触发事件
        window.onscroll=function(){
            var waterFallHeight=waterFall.offsetHeight
            var waterFallTop=waterFall.offsetTop
            var scrollTop=document.documentElement.scrollTop||document.body.scrollTop
            var windowHeight=document.documentElement.clientHeight
            if(isloading) return
            //计算(div高+距离文档左上角的高)-(窗口高+滚动距离)判断滚动条是否到底部
            if((waterFallHeight+waterFallTop)-(scrollTop+windowHeight)<200){
            //防止滚动条一动就触发渲染画面的事件
                isloading=true
                setTimeout(function(){
                    renderImg(arr2)
                    //确保内容渲染后再滚动滚动条才能再次触发渲染画面
                    isloading=false
                },500)
            }
        }

    </script>
</body>
</html>

实现效果

QQ录屏20230113134944

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值