瀑布流,將相同寬度留潦,高度不等的元素(大多時(shí)候是圖片)只盹,整齊平整的呈現(xiàn)在用戶眼前,因?yàn)槊總€(gè)元素的高度不同兔院,如果使用浮動(dòng)殖卑,將會(huì)出現(xiàn)一大塊空隙,如下圖:
Paste_Image.png
瀑布流的實(shí)現(xiàn)思路
- 我們首先是知道瀏覽器的寬度的坊萝,我們可以用JQ里面的
$(window).width( )
獲取瀏覽器的寬度孵稽,由于每個(gè)元素的寬度是固定的许起,我們用“瀏覽器的寬度”/“元素的寬度”,得到在當(dāng)前瀏覽器寬度下菩鲜,可以平鋪多少列的元素园细,即元素的列數(shù)。 - 之后我們創(chuàng)建一個(gè)空數(shù)據(jù)接校,
arr=[]
猛频,數(shù)組中放置跟列數(shù)相同的元素。
for(var i=0;i<列數(shù).length;i++){
arr.push(0)
}
數(shù)組里面的數(shù)代表著這一列的總高度馅笙。一開(kāi)始并沒(méi)放元素下去伦乔,所以我們?cè)O(shè)置全部為0厉亏;
3.我們遍歷所有數(shù)據(jù)董习,選出數(shù)組中的最小值并獲取它的下標(biāo)數(shù);將圖片放在這一列的下面爱只,并更新高度皿淋,
top=arr[min];
left=min*元素寬度;//設(shè)置元素的位置
列高度=原列高度+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)