zk785
2016-05-20 16:10
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行出现错误,是哪里出的问题?
oBox[i]的i都没了,for(var i=0;i<oBox.length;i++){
if(i<cols){
hArr.push(oBox[i].offsetHeight);
}
}
变量是在for循环内定义的,你的i都跑变量外面来了,怎么会有,还有if if(i<cols),下面的代码不应该是else里面吗
瀑布流布局
97759 学习 · 736 问题
相似问题