JS实现瀑布流布局
程序员文章站
2022-04-28 23:34:50
本文实例为大家分享了js实现瀑布流布局展示的具体代码,供大家参考,具体内容如下
html部分
本文实例为大家分享了js实现瀑布流布局展示的具体代码,供大家参考,具体内容如下
html部分
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>瀑布流布局</title> <script src="wallpoll.js"></script> <link rel="stylesheet" href="wallpoll.css" rel="external nofollow" > </head> <body> <div id="main"> <div class="box"> <div class="pic"> <img src="wallpoll/0.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/0.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/1.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/2.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/3.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/4.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/5.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/6.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/7.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/8.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/9.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/10.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/11.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/12.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/13.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/14.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/15.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/16.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/17.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/18.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/19.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/20.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/21.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/22.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/23.jpg" alt=""> </div> </div> <div class="box"> <div class="pic"> <img src="wallpoll/24.jpg" alt=""> </div> </div> </div> </body> </html>
css部分
*{ padding:0px; margin:0px; } .main{ position:relative; } .box{ padding:15px 0 0 10px; float:left; } .pic{ padding:10px; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 0 5px #ccc; /*float:left;*/ } img{ width:170px; height:auto; }
js部分
window.onload=function(){ waterfall('main','box'); var dataint={"data":[{"src":"0.jpg"},{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"}]} window.onscroll=function(){ if(checkscrollslide){ for(var i=0;i<dataint.data.length;i++){ var oparent=document.getelementbyid("main"); var box=document.createelement("div"); box.classname="box"; oparent.appendchild(box); var pic=document.createelement("div"); pic.classname="pic"; box.appendchild(pic); var img=document.createelement("img"); img.src="wallpoll/"+dataint.data[i].src; pic.appendchild(img); } } waterfall('main','box'); } } function waterfall(parent,child){ var oparent=document.getelementbyid(parent); var boxs=oparent.getelementsbyclassname(child); var boxw=boxs[0].offsetwidth; var cols=math.floor(document.documentelement.clientwidth/boxw); oparent.style.csstext="width:"+cols*boxw+"px;margin:0 auto"; var harr=new array(); for(var i=0;i<boxs.length;i++){ if(i<cols){ harr.push(boxs[i].offsetheight); }else{ var minh=math.min.apply(null,harr); var index=getminhindex(harr,minh); boxs[i].style.position="absolute"; boxs[i].style.top=minh+"px"; boxs[i].style.left=boxs[index].offsetleft+"px"; harr[index]+=boxs[i].offsetheight; } } } function getminhindex(arr,val){ for(var i in arr){ if(arr[i]===val){ return i; } } } function checkscrollslide(){ var oparent=document.getelementbyid("main"); var boxs=oparent.getelementsbyclassname("box"); var lastbox=boxs[boxs.length-1]; var height=lastbox.offsettop+math.floor(lastbox.offsetheight/2); var scrollheigth=document.documentelement.scrolltop || document.body.scrolltop; // console.log(scrollheigth); var seeheigth=document.documentelement.clientheigth || document.body.clientheigth; return seeheigth+scrollheigth>height?true:false; }
课程。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。