一、要求
多个等宽的图片进行穿插排序成六列,并且在目前显示的最后一张图片显示之后,再进行下拉时能够在进行加载其他图片,每次下拉显示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>