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
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
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