- 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;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/280220148817.html
来源: http://www.codesnippet.cn/detail/280220148817.html