原生的简单JavaScript瀑布流代码片段,具体代码如下:
var doc_w = document.documentElement.offsetWidth; // 获取页页宽度
var lis = document.getElementsByTagName('li'); // 获取页面中定位元素集合
var li_w = lis[0].offsetWidth; // 获取页面中定位元素的宽度
var n = Math.floor(doc_w / li_w); // 计算出每一行放置定位元素的个数
var h = []; // 定义一个数组用来实时记录每列的高度
for(var i=0; i<lis.length; i++) {
var li_h = lis[i].offsetHeight; // 每个定位元素的高度值
if(i < n) { // 第一行top值都等于0; left 等于定位元素的下标乘以定宽
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;
}
}
更多信息请查看IT技术专栏