为什么我用offsetheight获取的box的高度存放到数组后,在控制台打印的结果与实际高度不相符

window.onload=function(){

waterfall('main','box');

}


//将main下的所有class为box的元素取出来

function waterfall(parent,box){

var oParent=document.getElementById(parent);

var oBoxs=getByClass(oParent,box);

//计算整个页面显示的列数(页面宽/box的宽)

var oBoxW=oBoxs[0].offsetWidth;

var cols=Math.floor(document.documentElement.clientWidth/oBoxW);

console.log(cols);

oParent.style.cssText='width:'+oBoxW*cols+'px;margin:0 auto';

var hArr=[];//存放每一列高的数组

for(var i=0;i<oBoxs.length;i++){//遍历所有class为oBoxs的元素

if(i<cols){

hArr.push(oBoxs[i].offsetHeight);

}

}


console.log(hArr);

}


//根据class获取元素

function getByClass(parent,clsName){

var boxArr=new Array(),

  oElements=parent.getElementsByTagName('*');

for(var i=0;i<oElements.length;i++){

boxArr.push(oElements[i]);

}

return boxArr;

}


function getMinIndex(arr,val){

for(var i in arr){

if(arr[i]==val){

return i;

}

}

}


慕瓜3745345
浏览 1834回答 1
1回答

qq_药药_0

考虑过兼容性没有
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript