window.onload=function(){
waterfall('main','box');
}
function waterfall(parent,box){
//获取class为box的元素
var oParent = document.getElementById(parent);
var oBox= getByClass(oParent,box);
//console.log(oBox.length);
// 计算页面显示的列数(页面宽度/box宽)
var oBoxw = oBox[0].offsetWidth;
var cols =Math.floor(document.documentElement.clientWidth/oBoxw);
//设置main的宽度
oParent.style.cssText='width:'+oBoxw*cols+'px;margin:0 auto';
var hArr=[];
for(var i=0;i<oBox.length;i++){
if(i<cols){
hArr.push(oBox[i].offsetHeight);
}
}
//console.log(hArr);
var minH=Math.min.apply(null,hArr);
//console.log(minH);
var index = getMinH(hArr,minH);
oBox[i].style.position='absolute';
oBox[i].style.top=minH+'px';
oBox[i].style.left=oBoxw*index+'px';
hArr[index]+=oBox[i].offsetHeight;
}
//根据class获取元素
function getByClass(parent,clsName){
var boxArr = [];
oElements = parent.getElementsByTagName('*');
for(var i=0;i<oElements.length;i++){
if(oElements[i].className==clsName){
boxArr.push(oElements[i]);
}
}
return boxArr;
}
function getMinH(arr,val){
for(var i in arr){
if (arr[i]==val){
return i;
}
}
}
25行出现错误,是哪里出的问题?