原生的简单JavaScript瀑布流代码
2015-04-27来源:

原生的简单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技术专栏

推荐信息
Baidu
map