demo3
瀑布流
要求:多个等宽的图片进行穿插排序成六列,并且在目前显示的最后一图片显示之后,再进行下拉时能够在进行加载其他图片,每次下显示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>
</head>
<style>
*{
margin: 0;
padding: 0;
}
body{
display: flex;
justify-content: center;
background-color: bisque;
}
#nav{
width: 1200px;
margin: 0 auto;
flex-direction: row;
column-gap: 5px;
column-count: 6;
}
.img{
width: 180px;
display: block;
margin: 0;
padding: 0;
}
.imgnav{
margin-top: 10px;
margin-bottom: 10px;
}
</style>
<body>
<div id="nav">
<div class="imgnav"><img src="./1.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./2.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./3.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./4.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./5.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./6.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./7.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./8.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./1.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./2.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./3.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./4.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./5.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./6.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./7.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./8.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./1.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./2.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./3.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./4.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./5.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./6.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./7.webp" alt="" class="img"></div>
<div class="imgnav"><img src="./8.webp" alt="" class="img"></div>
</div>
<!-- 开始的布局 -->
<script>
var arr1=[{
src:"./1.webp"
},
{
src:"./2.webp"
},
{
src:"./3.webp"
},
{
src:"./4.webp"
},
{
src:"./5.webp"
},
{
src:"./6.webp"
},
{
src:"./7.webp"
},
]
<!-- 需要新填的内容-->
var nav=document.getElementById("nav");
var imgarr=document.querySelectorAll("img");
var list=document.getElementById("list");
function readd(arr){
nav.innerHTML+=arr.map(function(item){
return `<div class="imgnav"><img src="${item.src}" alt="" class="img"></div>`
}).join("");//将原来的对象中的元素转化为nav块中的内容
}
window.onscroll=function(){
var scrolltop=document.documentElement.scrollTop;
var navheight=nav.scrollHeight;
var height=document.documentElement.clientHeight;
if(Math.round(scrolltop+height)==navheight){//计算当滚动条滑到最低端时的条件
//添加新的内容
for(let i=0;i<3;i++){
readd(arr1);
}
}
}
nav.style.height=imgarr.length;
</script>
</body>
</html>