饥人谷技术博客

瀑布流的实现思路

2016-10-14  本文已影响60人  好怪的怪兽

瀑布流,将相同宽度,高度不等的元素(大多时候是图片),整齐平整的呈现在用户眼前,因为每个元素的高度不同,如果使用浮动,将会出现一大块空隙,如下图:


Paste_Image.png

瀑布流的实现思路

  1. 我们首先是知道浏览器的宽度的,我们可以用JQ里面的$(window).width( )获取浏览器的宽度,由于每个元素的宽度是固定的,我们用“浏览器的宽度”/“元素的宽度”,得到在当前浏览器宽度下,可以平铺多少列的元素,即元素的列数。
  2. 之后我们创建一个空数据,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)
上一篇 下一篇

猜你喜欢

热点阅读