jQuery瀑布流布局
waterFall.js
/*扩展jquery 的方法,扩展的方法是要操作局部的dom*/ $.fn.waterFall=function(){ var $items=$(this); var parentWidth=$items.width();//盒子宽度 var $childRen=$items.children(".item"); var width=$childRen.width();//每一个item宽度 var column=5;//列数 var space=(parentWidth-column*width)/(column-1);//间距 //定义的一个临时的存储区,记录每一列的高度. var arr=[]; $childRen.each(function(index,dom){ var $dom=$(dom); if(index<column){ //这里是计算前面的5列位置. $dom.css({ top:0, left:index*(width+space) }); arr.push($dom.height()); }else{ //这里是计算后面的元素的位置. var minIndex=0; //找到最矮的这一列的高度,以及索引值. var minHeight=arr[minIndex]; for(var i=0;i<arr.length;i++){ if(minHeight>arr[i]){ minHeight=arr[i]; minIndex=i; } } //找到之后改这个item 的位置. //找到最矮的一列,然后把这个元素加到最矮的那一列下面去. $dom.css({ left:minIndex*(width+space), top:minHeight+space }); // 这里是把最矮的那一列的高度进行更新,因为你在最矮的这一列添加了元素. arr[minIndex]=minHeight+space+$dom.height(); } }) }
html
<div class="items"> <div class="item"> <img src="../imgs/1.png"/> </div> <div class="item"> <img src="../imgs/1.png"/> </div> </div> //引入jQuery和上面waterFall.js <script> $(".items").waterFall() </script>
相关推荐
zrtlin 2020-11-09
xuebingnan 2020-11-05
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
softwear 2020-08-21
ZGCdemo 2020-08-16
jczwilliam 2020-08-16
littleFatty 2020-08-16
idning 2020-08-03
jinxiutong 2020-07-26
lanzhusiyu 2020-07-19
Skyline 2020-07-04
xiaofanguan 2020-06-25
Aveiox 2020-06-23
dragonzht 2020-06-17