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

首頁 > 編程 > JavaScript > 正文

javascript實現瀑布流動態加載圖片原理

2019-11-20 09:15:21
字體:
來源:轉載
供稿:網友

本文實例為大家分享了js瀑布流加載效果,動態加載圖片,供大家參考,具體內容如下

鼠標滾動事件,當鼠標滾動到下邊,動態加載圖片。

1. HTML代碼    

<!DOCTYPE html><html> <head>  <meta charset="UTF-8">  <title>js實現瀑布流效果-動態加載圖片</title>  <link rel="stylesheet" href="css/waterfallflow.css" type="text/css" />  <script src="js/waterfallflow.js"></script> </head> <body>  <div id="container">   <div class="box">    <div class="box_img">     <img src="img/1.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/2.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/3.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/4.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/5.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/6.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/7.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/3.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/1.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/2.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/1.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/2.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/3.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/4.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/5.jpg" />    </div>   </div>   <div class="box">    <div class="box_img">     <img src="img/6.jpg" />    </div>   </div>      </div> </body></html>

2. CSS代碼    

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

3. JavaScript代碼    

window.onload=function(){   imgLocation("container","box"); var imgData={"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"}]} window.onscroll=function(){//  console.log(document.documentElement.scrollTop);  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="img/"+imgData.data[i].src;    boximg.appendChild(img);         //另外一種方法在div后邊追加內容,不覆蓋原有內容//    var content="<div class='box'><div class='box_img'><img src='img/"+imgData.data[i].src+"'/></div></div>";//    cparent.innerHTML+=content;   }   imgLocation("container","box");  } }} function checkFlag(){ var cparent=document.getElementById("container"); var ccontent=getChildElement(cparent,"box");//圖片的所有box數 var lastContentHeight=ccontent[ccontent.length-1].offsetTop;//最后一張圖片距離頂部高度 var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;//滾動條距離頂部高度 var pageHeight=document.documentElement.clientHeight||document.body.clientHeight;//屏幕高度// console.log(lastContentHeight+","+scrollTop+","+pageHeight); if(lastContentHeight<scrollTop+pageHeight){  return true; }} function imgLocation(parent,content){ var cparent=document.getElementById(parent); var ccontent=getChildElement(cparent,content);//圖片的所有box數 var imgWidth=ccontent[0].offsetWidth;//圖片寬度 var num=Math.floor(document.documentElement.clientWidth/imgWidth);//一行放圖片個數 cparent.style.cssText="width:"+imgWidth*num+"px;margin:0px auto";//container的寬度 var boxHeightArr=[];//每一列box高度 for(var i=0;i<ccontent.length;i++){  if(i<num){   boxHeightArr[i]=ccontent[i].offsetHeight;  }else{   var minHeight=Math.min.apply(null,boxHeightArr);//最小高度   var minIndex = getMinheightLocation(boxHeightArr,minHeight);//得到最小高度下標//   console.log(minHeight+","+minIndex);   ccontent[i].style.position="absolute";   ccontent[i].style.top=minHeight+"px";//距離頂部高度   ccontent[i].style.left=ccontent[minIndex].offsetLeft+"px";//距離左邊長度   boxHeightArr[minIndex]+=ccontent[i].offsetHeight;//   console.log(ccontent[i].offsetHeight+","+ccontent[i].height);//ccontent[i].height=undefined      } }} function getMinheightLocation(boxHeightArr,minHeight){ for(var i in boxHeightArr){  if(boxHeightArr[i]==minHeight){   return i  } }} function getChildElement(parent,content){ //將parent下有content的全部取出 var contentArr=[]; var allContent=parent.getElementsByTagName("*"); for(i=0;i<allContent.length;i++){  if(allContent[i].className=="box"){   contentArr.push(allContent[i]);  } } return contentArr;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳信县| 论坛| 盐城市| 衡水市| 茌平县| 泰和县| 莆田市| 建昌县| 乡城县| 油尖旺区| 郸城县| 龙井市| 通江县| 光山县| 佳木斯市| 沂源县| 沭阳县| 遂川县| 鄯善县| 泸溪县| 原阳县| 剑河县| 宜章县| 陇西县| 南丰县| 搜索| 静乐县| 绥阳县| 东城区| 拜城县| 建阳市| 阳新县| 梁山县| 聂拉木县| 辽宁省| 巴林右旗| 英超| 登封市| 克山县| 玉林市| 六枝特区|