问答详情
源自:2-4 JavaScript实现瀑布流布局中图片排序

为什么chrome打印第一行盒子的高度offsetHeight都是55px?

function waterfall(parent,box){
   var oParent=document.getElementById(parent);
   //获取盒子对象
   var oBoxs=getByClass(oParent,box);
   //计算整个页面显示图片的列数(浏览器宽度/盒子的宽度)
   var oBoxW=oBoxs[0].offsetWidth;
   var cols=Math.floor(document.documentElement.clientWidth/oBoxW);
   //设置main盒子宽度
   oParent.style.cssText='width:'+oBoxW*cols+'px;margin:0 auto';
   /*图片排序*/
   //存放每列高度的数组,else表明已经到了第二行,第一行不需要排序
   var hArr=[];
   for(var i=0;i<oBoxs.length;i++){
       if(i<cols){
           hArr.push(oBoxs[i].offsetHeight);
       }/*else{
           var minH=Math.min.apply(null,hArr);
           var index=getMinhIndex(hArr,minH);
           oBoxs[i].style.position='absolute';
           oBoxs[i].style.top=minH+'px';
           oBoxs[i].style.left=oBoxW*index+'px';
           //oBoxs[i].style.left=oBoxs[index].offsetLeft+'px';
           hArr[index]+=oBoxs[i].offsetHeight;
       }*/
   }
   alert(oBoxs[0].offsetHeight)
}

提问者:慕UI3822588 2016-05-10 17:34

个回答

  • 慕UI3822588
    2016-05-13 16:38:36

    依次输入也是一样的,每一个高度都是55px


  • qq_覗水翛_0
    2016-05-10 23:37:09

     alert(oBoxs[0].offsetHeight)

    你这里输入的始终是oBoxs[0],也就是第一个box的高度啊。要依次输出每一个的高度,改成oBox[i].offsetHeight