瀑布流,将相同宽度,高度不等的元素(大多时候是图片),整齐平整的呈现在用户眼前,因为每个元素的高度不同,如果使用浮动,将会出现一大块空隙,如下图:
瀑布流的实现思路
- 我们首先是知道浏览器的宽度的,我们可以用JQ里面的
$(window).width( )
获取浏览器的宽度,由于每个元素的宽度是固定的,我们用“浏览器的宽度”/“元素的宽度”,得到在当前浏览器宽度下,可以平铺多少列的元素,即元素的列数。 - 之后我们创建一个空数据,
arr=[]
,数组中放置跟列数相同的元素。
for(var i=0;i<列数.length;i++){
arr.push(0)
}
数组里面的数代表着这一列的总高度。一开始并没放元素下去,所以我们设置全部为0;
3.我们遍历所有数据,选出数组中的最小值并获取它的下标数;将图片放在这一列的下面,并更新高度,
top=arr[min];
left=min*元素宽度;//设置元素的位置
列高度=原列高度+top;
[瀑布流例子](http://book.jirengu.com/jirengu-inc/jrg-renwu4/member/%E9%99%86%E6%97%B8%E5%97%A3/%E7%80%91%E5%B8%83%E6%B5%81/%E7%80%91%E5%B8%83%E6%B5%81.html)