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

首頁 > 編程 > JavaScript > 正文

JavaScript實現圖片自動加載的瀑布流效果

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

先給大家展示下效果圖:

 向下滑動網頁的時候能夠自動加載圖片并顯示。

  盛放圖片的盒子模型如下:

    <div class="box"><div class="box_img"><img src="Img/8.jpg"></div></div>

  設置img-width為150px,然后box_img添加內邊距和陰影效果,box的外邊距為0,添加內邊距。盒子的寬度是由img-width和邊距撐開的。也就是說盒子之間是沒有間距的,但是盒子內部有一些邊距的效果。這樣在js設置位置的時候就不用考慮邊距問題,直接調用box的寬度就可以了。

  設置盛放所有box的div的position為relative,這樣在設置top值或是left值的時候,就不用考慮最外層的margin屬性。

  放置圖片的位置:獲得第一行圖片的高度并且存放在數組里面,接下來的圖片設置position為absolute,放置在高度最小的圖片的下面,然后設置top和left,并且把數組的最小值加上新放置的圖片的高度。也就是說HTML里面原始放置的圖片除了第一行以外,其他的圖片都是在js里面又重新定位的。

  當滑動頁面到底部的時候觸發事件函數,緊接著放置一些圖片,這樣保證圖片的無限加載。

  HTML文件:

<!DOCTYPE html><html><head lang="en"><meta charset="UTF-"><title></title><link rel="stylesheet" href="waterfall.css" type="text/css"><script src="waterfall.js"></script></head><body><div id="content"><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box" ><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box" ><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box" ><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box" ><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box"><div class="box_img"><img src="Img/.jpg"></div></div><div class="box" ><div class="box_img"><img src="Img/.jpg"></div></div></div></body></html>

  CSS文件:

*{margin: ;padding:;}#content{position: relative;background-color: #;}.box{padding: px;float: left;}.box_img{padding: px;border: px solid #cccccc;box-shadow: px #cccccc;border-radius: px;}img{width: px;height: auto;}

  js文件:

  Math.floor()函數能夠向下取整。

  Math.min.apply(null,heightArr);函數能獲得heightArr數組的最小值。

  window.onscroll=function(){};滑動頁面的時候觸發這個函數。

  document.documentElement.clientHeight;瀏覽器顯示出來的高度。

  document.documentElement.scrollTop;滑動的距離。

/*** Created by asua on 2016/4/9.*/window.onload=function(){imgLocation("content","box");var lodeImage={"Date":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"},{"src":"7.jpg"},{"src":"8.jpg"},{"src":"9.jpg"},{"src":"10.jpg"},]}window.onscroll=function(){if(checkFlag()){for(var i=0;i<lodeImage.Date.length;i++){var box=document.createElement("div");box.className="box";var cparent=document.getElementById("content");cparent.appendChild(box);var box_img=document.createElement("div");box_img.className="box_img";box.appendChild(box_img);var img=document.createElement("img");img.src="Img/"+lodeImage.Date[i].src;box_img.appendChild(img);}imgLocation("content","box");}}}function checkFlag(){var cparent=document.getElementById("content");var ccontent=getChildElement(cparent,"box");var lastContentHeight=ccontent[ccontent.length-1].offsetTop;var scrollHeight=document.documentElement.scrollTop||document.body.scrollTop;var pageHeight=document.documentElement.clientHeight||document.body.clientHeight;console.log(lastContentHeight+":"+scrollHeight+":"+pageHeight);if(lastContentHeight<scrollHeight+pageHeight){return true;}}function imgLocation(parent,child){var cparent=document.getElementById(parent);var ccontent=getChildElement(cparent,child);var imgwidth=ccontent[0].offsetWidth;var cols=Math.floor(document.documentElement.clientWidth/imgwidth);cparent.style.cssText="width:"+imgwidth*cols+"px;margin:30px auto";var heightArr=[];for(var i=0;i<ccontent.length;i++){if(i<cols){heightArr.push(ccontent[i].offsetHeight);}else{var minHeight=Math.min.apply(null,heightArr);var minIndex=getMinIndex(heightArr,minHeight);ccontent[i].style.position="absolute";ccontent[i].style.top=minHeight+"px";ccontent[i].style.left=ccontent[minIndex].offsetLeft+"px";heightArr[minIndex]+=ccontent[i].offsetHeight;}}}function getMinIndex(heightArr,minHeight){for(var i=0;i<heightArr.length;i++){if(heightArr[i]==minHeight){return i;}}}function getChildElement(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;}

好了,關于js實現圖片自動加載的瀑布流效果代碼到此給大家介紹完了,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万源市| 土默特左旗| 华阴市| 宁波市| 璧山县| 宜宾县| 汨罗市| 浦东新区| 江华| 盐亭县| 太原市| 泸水县| 喀喇| 鲜城| 栾城县| 通化市| 揭阳市| 武穴市| 滦平县| 万源市| 四子王旗| 山东| 来凤县| 若羌县| 伊宁市| 嫩江县| 盈江县| 镇赉县| 罗定市| 兰考县| 肃北| 永和县| 和林格尔县| 海阳市| 罗田县| 武乡县| 桐城市| 金阳县| 古丈县| 宁夏| 香格里拉县|