为了账号安全,请及时绑定邮箱和手机立即绑定

求大神看看,最后一步总是出不来,图片总积压在第一张图下面!

window.onload = function(){
  //waterfall('main','box')
  waterfall('main','box')
}


function waterfall(parent,box){
  var oParent = document.getElementById(parent);
  var boxs = getClassName(oParent,box);
  var oBoxW = boxs[0].offsetWidth;
  var cols = Math.floor((document.documentElement.clientWidth)/oBoxW);

  //大盒子宽度
  oParent.style.cssText = 'width:'+ oBoxW*cols + 'px;margin:0 auto';
  var hArr = [];
  for (var i = 0; i < boxs.length; i++) {
    if (i < cols) {
      hArr.push(boxs[i].offsetHeight)
    }else {
      var minH = Math.min.apply(null,hArr);
      var index = getMinIndex(hArr,minH);
      boxs[i].style.position = 'absolute';
      boxs[i].style.top = minH + 'px';
      boxs[i].style.left = boxs[index].offsetLeft;
      //hArr[index] +=boxs[i].offsetHeight;
      hArr[index] += boxs[i].offsetHeight;
    }
  }

}


function getClassName(parent,clsname){

  var oElements = parent.getElementsByTagName('*')
  var boxs = []
  for (var i = 0; i < oElements.length; i++) {
    if (oElements[i].className == clsname) {
      boxs.push(oElements[i])
    }
  }
    return boxs
}

function getMinIndex(arr,value){
  for (var i in arr) {
    if (arr[i] == value) {
      return i;
    }
  }
}

我的第一排的图片有点特殊·  有3张一样高的·   0 1 2 3 4 5     0,2,3,都是135px高度,现在我所有的下面图,全部积压在第一张图下面了!不知所措!

正在回答

1 回答

第24最后好像没加  'px'

1 回复 有任何疑惑可以回复我~
#1

葡萄3 提问者

啊啊! 万分感谢!
2017-07-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神看看,最后一步总是出不来,图片总积压在第一张图下面!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信