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

    waterFall.js

    /*扩展jquery 的方法,扩展的方法是要操作局部的dom*/
    $.fn.waterFall=function(){
           var $items=$(this);
           var parentWidth=$items.width();//盒子宽度
           var $childRen=$items.children(".item");
           var width=$childRen.width();//每一个item宽度
           var column=5;//列数
           var space=(parentWidth-column*width)/(column-1);//间距
           //定义的一个临时的存储区,记录每一列的高度.
           var arr=[];
           $childRen.each(function(index,dom){
                 var $dom=$(dom);
                 if(index<column){ //这里是计算前面的5列位置.
                     $dom.css({
                          top:0,
                          left:index*(width+space)
                     });
                     arr.push($dom.height());
                 }else{
                     //这里是计算后面的元素的位置.
                     var minIndex=0;
                     //找到最矮的这一列的高度,以及索引值.
                     var minHeight=arr[minIndex];
                     for(var i=0;i<arr.length;i++){
                            if(minHeight>arr[i]){
                                minHeight=arr[i];
                                minIndex=i;
                            }
                     }
                     //找到之后改这个item 的位置.
                    //找到最矮的一列,然后把这个元素加到最矮的那一列下面去.
                     $dom.css({
                          left:minIndex*(width+space),
                          top:minHeight+space
                     });
                     // 这里是把最矮的那一列的高度进行更新,因为你在最矮的这一列添加了元素.
                     arr[minIndex]=minHeight+space+$dom.height();
                 }
           })
    }
    

    html

    <div class="items">
        <div class="item">
            <img src="../imgs/1.png"/>
        </div>
        <div class="item">
            <img src="../imgs/1.png"/>
        </div>
    </div>
    //引入jQuery和上面waterFall.js
    <script>
        $(".items").waterFall()
    </script>
    
  • 相关阅读:
    POJ 1364 King (差分约束系统)
    COJ 1086: 超市购物 (背包问题)
    OpenGL 视图和颜色的概念
    OpenGL 位图和图像概念
    OpenGL 状态管理和绘制几何体
    java jni和android java ndk
    android ndk(2)
    effective c++ 跨编译单元之初始化次序 笔记
    OpenGL 帧缓冲区
    c++ 自动对象、静态局部对象和内联函数
  • 原文地址:https://www.cnblogs.com/samsara-yx/p/12360860.html
Copyright © 2011-2022 走看看