原生的簡(jiǎn)單JavaScript瀑布流代碼片段,具體代碼如下:
var doc_w = document.documentElement.offsetWidth; // 獲取頁(yè)頁(yè)寬度
var lis = document.getElementsByTagName('li'); // 獲取頁(yè)面中定位元素集合
var li_w = lis[0].offsetWidth; // 獲取頁(yè)面中定位元素的寬度
var n = Math.floor(doc_w / li_w); // 計(jì)算出每一行放置定位元素的個(gè)數(shù)
var h = []; // 定義一個(gè)數(shù)組用來(lái)實(shí)時(shí)記錄每列的高度
for(var i=0; i<lis.length; i++) {
var li_h = lis[i].offsetHeight; // 每個(gè)定位元素的高度值
if(i < n) { // 第一行top值都等于0; left 等于定位元素的下標(biāo)乘以定寬
lis[i].style.top = 0;
lis[i].style.left = i * li_w + 'px';
h[i] = li_h;
} else {
var min_h = h[0];
var min_i = 0;
for(var j=0; j<h.length; j++) {
if(h[j] < min_h) {
min_h = h[j];
min_i = j;
}
}
lis[i].style.left = li_w * min_i + 'px';
lis[i].style.top = min_h + 'px';
h[min_i] = h[min_i] + li_h;
}
}
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄