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

为啥无法显示瀑布流布局??

window.onunload=function(){
    waterfall('main','box')
};
function waterfall(parent,box){
    //将main下的所有class为box的元素取出来;
    var oParent=document.getElementById(parent);
    var oBoxs=getByClass(oParent,box);
    //console.log(oBoxs.length);
    //计算整个页面显示的列数(页面款/box的宽)
    var oBoxW=oBoxs[0].offsetWidth;
    //console.log(oBoxW);
    var cols=Math.floor(document.documentElement.clientWidth/oBoxW);
    //console.log(cols);
    //设置main的宽度
   oParent.style.cssText='width:'+oBoxW*cols+'px;margin:0 auto';
   // oParent.style.cssText='width:'+oBoxW*cols+'px;margin:0 auto';
    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);
            //console.log(minH)
            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;
        }
    }
    //console.log(hArr);



}

//根据class获取元素
function getByClass(parent,clsName){
    var boxArr=new Array(),//用来存储获取到的所有class为box的元素
        oElements=parent.getElementsByTagName('*');
    for(var i=0;i<oElements.length;i++){
        if(oElements[i].className==clsName){
            boxArr.push(oElements[i]);
        }
    }
    return boxArr;
}

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

我想问下  为啥我的无法显示像老师这样   从设置margin:0 auto;开始就不行了   我直接照抄代码还是不行 为啥啊?

正在回答

1 回答

1、window.onload=function(){}

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

你改改,再看看

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
瀑布流布局
  • 参与学习       97759    人
  • 解答问题       736    个

瀑布流布局是网站比较流行的一种布局方式,教你实现三大方式

进入课程

为啥无法显示瀑布流布局??

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