瀑布流+慢加载

一、要求

多个等宽的图片进行穿插排序成六列,并且在目前显示的最后一张图片显示之后,再进行下拉时能够在进行加载其他图片,每次下拉显示20-30张图片

二、实验原理

慢加载,主要是对于页面的空间距离进行判断比较,若相等就说明已经到底了,所以我们可以设置一个范围前加入照片,实现一个慢加载的效果

三、实验效果图

瀑布流+慢加载

原代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
       *{
    padding: 0;
    margin: 0;
}
#bigbox{
    width: 100%;
    margin: 0 auto;
    position: relative;
    columns: 3;
    column-gap: 10px;
}

.pic img{
    width: 100%;
    height: 100%;
}



    </style>
</head>
<body>
    <body>
        <div id="bigbox">
            <div class="item">
                 <div class="pic">    
                    <img src="./1.jpg" alt="">
                </div>     
            </div>
            <div class="item">
                <div class="pic">
                <img src="./1.jpg" alt="">
                </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.5.jpg" alt="">
                </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.4.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./简动漫js轮播图-2023.1.5.21.47/img/6.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./1.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.1.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">    
                   <img src="./微信图片.7.jpg" alt="">
               </div>     
           </div>
           <div class="item">
               <div class="pic">
               <img src="./简动漫js轮播图-2023.1.5.21.47/img/5.jpg" alt="">
               </div>
           </div>
           <div class="item">
               <div class="pic">
               <img src="./微信图片.9.jpg" alt="">
               </div>
           </div>`
           <div class="item">
               <div class="pic">
               <img src="./微信图片.4.jpg" alt="">
           </div>
           </div>
           <div class="item">
               <div class="pic">
               <img src="./1.jpg" alt="">
           </div>
           </div>
           <div class="item">
               <div class="pic">
               <img src="./微信图片.8.jpg" alt="">
           </div>
           </div>
           <div class="item">
               <div class="pic">
               <img src="./1.jpg" alt="">
           </div>
           </div>
           <div class="item">
            <div class="pic">    
               <img src="./微信图片.8.jpg" alt="">
           </div>     
            </div>
            <div class="item">
                <div class="pic">
                <img src="./简动漫js轮播图-2023.1.5.21.47/img/4.jpg" alt="">
                </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./1.jpg" alt="">
                </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.4.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./1.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.2.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.1.jpg" alt="">
            </div>
            </div>
        </div>
    


    <script>
         var bigbox = document.getElementById("bigbox")
        function returnArr(){
            bigbox.innerHTML+=`<div class="item">
               <div class="pic">
               <img src="./微信图片.8.jpg" alt="">
           </div>
           </div>
           <div class="item">
               <div class="pic">
               <img src="./1.jpg" alt="">
           </div>
           </div>
           <div class="item">
            <div class="pic">    
               <img src="./微信图片.8.jpg" alt="">
           </div>     
            </div>
            <div class="item">
                <div class="pic">
                <img src="./简动漫js轮播图-2023.1.5.21.47/img/4.jpg" alt="">
                </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./1.jpg" alt="">
                </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.4.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./1.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.2.jpg" alt="">
            </div>
            </div>
            <div class="item">
                <div class="pic">
                <img src="./微信图片.1.jpg" alt="">
            </div>
            </div>`
        }
        var isloading = false
        window.onscroll = function(){
        var boxHeight = bigbox.offsetHeight
        var boxTop = bigbox.offsetTop
        var scrollTop = document.documentElement.scrollTop
        var windowHeight = document.documentElement.clientHeight
        var All = Math.round(boxHeight + boxTop)
        var change = Math.round(scrollTop + windowHeight)
        if(isloading) return 
        if(All - change <= 50){
            console.log("到底了")
            isloading = true 

            setTimeout(function(){
                returnArr()
                isloading = false
            },1000)
        }
    }

    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值