国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于JavaScript實現瀑布流布局

2019-11-20 10:48:55
字體:
來源:轉載
供稿:網友

本文實例講解了原生JavaScript實現瀑布流布局詳細代碼,分享給大家供大家參考,具體內容如下

效果圖:

具體代碼:

HTML

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title>  <link rel="stylesheet" type="text/css" href="css/style.css">  <script type="text/javascript" src="js/app.js"></script></head><body>  <div id="container">    <div class="box">       <div class="box_img"> <img src="images/1.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/2.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/3.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/4.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/5.jpg" alt=""></div>    </div>  <div class="box">       <div class="box_img"> <img src="images/6.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/7.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/8.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/9.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/10.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/1.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/2.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/3.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/4.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/5.jpg" alt=""></div>    </div>  <div class="box">       <div class="box_img"> <img src="images/6.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/7.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/8.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/9.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/10.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/1.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/2.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/3.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/4.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/5.jpg" alt=""></div>    </div>  <div class="box">       <div class="box_img"> <img src="images/6.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/7.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/8.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/9.jpg" alt=""></div>    </div>    <div class="box">       <div class="box_img"> <img src="images/10.jpg" alt=""></div>    </div>  </div></body></html>

CSS代碼:

*{   margin: 0px;   padding: 0px;}#container{   position: relative;}.box{   padding: 5px;   float: left;}.box_img{   padding: 5px;   border: 1px solid #cccccc;   box-shadow: 0 0 5px #ccc;   border-radius: 5px;}.box_img img{   width: 150px;   height:auto;}

js代碼:

window.onload=function(){   imgLocation("container","box");   var imgData={     "data":[       {"src":"2.jpg"},       {"src":"3.jpg"},       {"src":"4.jpg"},       {"src":"5.jpg"},       {"src":"6.jpg"},       {"src":"7.jpg"},       {"src":"8.jpg"},     ]   };   window.onscroll=function(){    if (checkFlag()) {      var cparent=document.getElementById("container");      for (var i = 0; i < imgData.data.length; i++) {         var ccontent=document.createElement("div");         ccontent.className="box";         cparent.appendChild(ccontent);         var boximg=document.createElement("div");         boximg.className="box_img";         ccontent.appendChild(boximg);         var img=document.createElement("img");         img.src="images/"+imgData.data[i].src;         boximg.appendChild(img);      }        imgLocation("container","box");    }   }}function checkFlag(){   var cparent=document.getElementById("container");   var ccontent=getChildnode(cparent,"box");   var lastContentHeight=ccontent[ccontent.length-1].offsetTop;   var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;   var pageHeight=document.documentElement.clientHeight||document.body.clientHeight;   if (lastContentHeight<scrollTop+pageHeight) {    return true;   }}function imgLocation(parent,content){     var cparent=document.getElementById(parent);     var ccontent=getChildnode(cparent,content);     var imgWidth=ccontent[0].offsetWidth;     var cols=Math.floor(document.documentElement.clientWidth/imgWidth);     cparent.style.cssText="width:"+imgWidth*cols+"px;margin:0 auto";   //把第二排的左起第一張圖片放到第一排高度最小的那張下面     var imgHeightArr=[];     for (var i = 0; i < ccontent.length; i++) {        if (i<cols) {            imgHeightArr[i]=ccontent[i].offsetHeight;                  }else{            var minHeight=Math.min.apply(null,imgHeightArr);            var minHeightIndex=getMinHeightLoc(imgHeightArr,minHeight);            console.log("minHeightIndex"+minHeightIndex);      ccontent[i].style.position="absolute";      ccontent[i].style.top=minHeight+"px";      ccontent[i].style.left=ccontent[minHeightIndex].offsetLeft+"px";      imgHeightArr[minHeightIndex]=imgHeightArr[minHeightIndex]+ccontent[i].offsetHeight;        console.log(imgHeightArr[i]);        console.log("高度最低:"+minHeight);        }    }}function getChildnode(parent,content){   var contentArr=[];   var allcontent=parent.getElementsByTagName("*");  for (var i = 0; i < allcontent.length; i++) {   if(allcontent[i].className==content){      contentArr.push(allcontent[i]);   }  };  return contentArr;}function getMinHeightLoc(imgHeightArr,minHeight){   for(var i in imgHeightArr){      if (imgHeightArr[i]==minHeight) {       return i;      }   }}

希望本文所述對大家學習javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德阳市| 信宜市| 伊春市| 花莲县| 融水| 阿拉善左旗| 文山县| 永靖县| 平阳县| 昌邑市| 内丘县| 武威市| 渭南市| 连平县| 涪陵区| 民勤县| 荥经县| 巢湖市| 金堂县| 台东县| 定陶县| 镇沅| 宝兴县| 文山县| 克拉玛依市| 昌宁县| 白沙| 日土县| 翁牛特旗| 台东市| 富锦市| 青神县| 沽源县| 剑阁县| 壶关县| 郑州市| 桐城市| 荔浦县| 北票市| 荥经县| 新郑市|