• 纯 CSS 实现两竖排瀑布流布局


    网上搜了好几种办法,实现出来的瀑布流效果如下:

    这里有个弊端,这并不符合瀑布流的原理,如果使用纯css写瀑布流,则每一块都是从上往下排列,不能做到从左到右排列,并且不会识别哪一块图片放在哪个地方合适,若是再配合动态加载,效果会特别不好

    我们想要的瀑布流是什么样的?

     因为我是两竖排所以可以用Float实现

     CSS

    .box{
           width: 100%;   
    }
    .item{
        width: 50%;
    }
    .item:nth-child(n){
        float: left;
    }
    .item:nth-child(2n){
        float: right;
    }

    Html

    <ul class="box">
            <li class="item">1</li>
            <li class="item">2</li>
        <li class="item">3</li>
        <li class="item">4</li>
        <li class="item">5</li>
        <li class="item">6</li>
        <li class="item">7</li>
        <li class="item">8</li>
        <li class="item">9</li>
        <li class="item">10</li>
        <li class="item">11</li>
        <li class="item">12</li>
        <li class="item">13</li>
        <li class="item">14</li>
        <li class="item">15</li>
    </ul>

    两排,float即可轻松实现

    多排的话就需要JS计算

    JS代码实现

    实现思路:

    1.   设定每一列图片的宽度和间距
    2.   获取当前窗口的总宽度,从而根据图片宽度去旁段分成几列
    3.   获取所有图片元素,定义一个空数组来保存高度
    4.   遍历所有容器,开始判断  当页面加载完成,或页面宽度发生变化时,调用函数。
      • 如果当前处于第一行时: 直接设置图片位置【 即 top为间距的大小,left为(当前图片的宽度+间距) * 当前图片的值+间距大小 】,并保存当前元素高度。
      • 如果当前不处于第一行时:进行高度对比,通过遍历循环,拿到最小高度和相对应的索引,设置图片位置【 即 top为最小高度值+间距*2,left为 (当前图片的宽度+间距) * 索引 值+间距大小)】,并修改当前索引的高度为当前元素高度。
    5.   当页面加载完成,或页面宽度发生变化时,调用函数。

     

  • 相关阅读:
    自动批改android模拟器的imei的小程序 和 下载各个版本SDK Tools及ADT
    Bulestacks模拟器Bulestacks.prop文件里中英文对照表
    HTTP Analyzer——WEB调试代理
    XCODE 添加不同IOS版本的模拟器
    在PC上运行安卓(Android)应用程序的几个方法
    二叉查找树的类模板实现
    以给定值为基分割链表
    简单二叉排序树的实现
    vector和list删除元素
    二叉树的基本操作
  • 原文地址:https://www.cnblogs.com/helloyoyo/p/15176482.html
Copyright © 2020-2023  润新知