zoukankan      html  css  js  c++  java
  • 瀑布流

    function waterfall(parent,pin){
    var oParent=document.getElementById(parent);// 父级对象
    var aPin=oParent.getElementsByTagName("li");// 获取存储块框li的数组aPin
    var iPinW=aPin[0].offsetWidth;// 一个块框pin的宽
    var num=Math.floor(document.documentElement.clientWidth/iPinW);//每行中能容纳的li个数【窗口宽度除以一个块框宽度】
    oParent.style.cssText=''+(iPinW*2+1)+'px;margin:0 auto;';//设置父级居中样式:定宽+自动水平外边距

    var pinHArr=[];//用于存储 每列中的所有块框相加的高度。
    for(var i=0;i<aPin.length;i++){//遍历数组aPin的每个块框元素
    var pinH=aPin[i].offsetHeight;
    if(i<num){
    pinHArr[i]=pinH; //第一行中的num个块框li 先添加进数组pinHArr
    }else{
    var minH=Math.min.apply(null,pinHArr);//数组pinHArr中的最小值minH
    var minHIndex=getminHIndex(pinHArr,minH);
    aPin[i].style.position='absolute';//设置绝对位移
    aPin[i].style.top=minH+'px';
    aPin[i].style.left=aPin[minHIndex].offsetLeft+'px';
    //数组 最小高元素的高 + 添加上的aPin[i]块框高
    pinHArr[minHIndex]+=aPin[i].offsetHeight;//更新添加了块框后的列高
    }
    }
    oParent.style.height = (Math.max.apply(null,pinHArr))+"px";//设置瀑布流容器高度
    // lazyLiong(6,pageNum);
    }

  • 相关阅读:
    JQuery hover鼠标变换
    装饰者模式
    principle04
    Method Injection
    观察者模式
    Java SPI
    Redis--学习01
    OO设计中5大原则
    knowledge
    策略模式
  • 原文地址:https://www.cnblogs.com/tanks/p/8927133.html
Copyright © 2011-2022 走看看