美文网首页
瀑布流布局

瀑布流布局

作者: 刘圣凯 | 来源:发表于2017-11-30 14:30 被阅读0次

瀑布流式布局是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局
瀑布流布局其核心是基于一个网格的布局,而且每行包含的项目列表高度是随机的(随着自己内容动态变化高度),同时每个项目列表呈堆栈形式排列,最为关键的是,堆栈之间彼此之间没有多余的间距差存大,如下图:

1.jpg

实现瀑布流布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>WaterFall</title>
    <style>
    .imgs{
//设置相对定位,让图片能够绝对定位
        position: relative;
        margin: 20px 150px;
    }
//图片的样式,设置一样的宽度,绝对定位,在窗口大小发生改变的时候,使用类似于动画效果去渲染
    .item{
        width: 200px;
        position: absolute;
        margin: 5px;
        transition: all 1s;
    }
    </style>
</head>
<body>

    <div class="imgs">
        <img src="http://i01.pic.sogou.com/cb4e9c56b6407929" alt="" class="item">
        <img src="http://i04.pic.sogou.com/24475ce890affd74" alt="" class="item">
        <img src="http://i03.pic.sogou.com/754215842d2e7b8f" alt="" class="item">
        <img src="http://i04.pic.sogou.com/fefe1127a428d5d7" alt="" class="item">
        <img src="http://i02.pic.sogou.com/fd9caa216e10cbfd" alt="" class="item">
        <img src="http://i02.pic.sogou.com/6f0856038af8fed8" alt="" class="item">
        <img src="http://i01.pic.sogou.com/cf403ec86cabcf5a" alt="" class="item">
        <img src="http://i04.pic.sogou.com/f34c9343648a299e" alt="" class="item">
        <img src="http://i01.pic.sogou.com/3be4b0564a82b91b" alt="" class="item">
        <img src="http://i02.pic.sogou.com/3cd9b64594f071d0" alt="" class="item">

        <img src="http://i01.pic.sogou.com/cb4e9c56b6407929" alt="" class="item">
        <img src="http://i04.pic.sogou.com/24475ce890affd74" alt="" class="item">
        <img src="http://i03.pic.sogou.com/754215842d2e7b8f" alt="" class="item">
        <img src="http://i04.pic.sogou.com/fefe1127a428d5d7" alt="" class="item">
        <img src="http://i02.pic.sogou.com/fd9caa216e10cbfd" alt="" class="item">
        <img src="http://i02.pic.sogou.com/6f0856038af8fed8" alt="" class="item">
        <img src="http://i01.pic.sogou.com/cf403ec86cabcf5a" alt="" class="item">
        <img src="http://i04.pic.sogou.com/f34c9343648a299e" alt="" class="item">
        <img src="http://i01.pic.sogou.com/3be4b0564a82b91b" alt="" class="item">
        <img src="http://i02.pic.sogou.com/3cd9b64594f071d0" alt="" class="item">

        <img src="http://i01.pic.sogou.com/cb4e9c56b6407929" alt="" class="item">
        <img src="http://i04.pic.sogou.com/24475ce890affd74" alt="" class="item">
        <img src="http://i03.pic.sogou.com/754215842d2e7b8f" alt="" class="item">
        <img src="http://i04.pic.sogou.com/fefe1127a428d5d7" alt="" class="item">
        <img src="http://i02.pic.sogou.com/fd9caa216e10cbfd" alt="" class="item">
        <img src="http://i02.pic.sogou.com/6f0856038af8fed8" alt="" class="item">
        <img src="http://i01.pic.sogou.com/cf403ec86cabcf5a" alt="" class="item">
        <img src="http://i04.pic.sogou.com/f34c9343648a299e" alt="" class="item">
        <img src="http://i01.pic.sogou.com/3be4b0564a82b91b" alt="" class="item">
        <img src="http://i02.pic.sogou.com/3cd9b64594f071d0" alt="" class="item">
    </div>





    <script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
    <script>
//在渲染页面的时候先执行一次函数
        WaterFall()



//通过设置left/top值来达到瀑布流的视觉效果
        function WaterFall(){
//获取图片一列的个数,即容器宽度/图片宽度,将结果取整
            var colLength = parseInt($('.imgs').width()/$('.item').width())
//定义一个空数组,存在每一列的图片的高度
            var itemArr = []
//初始化这个数组
            for(var i = 0; i < colLength; i++){
                itemArr[i] = 0
            }
//遍历图片元素
            $('.item').each(function (){
//存储数组里面的最小值
                var minVal = Math.min.apply(null,itemArr)
//存储这个最小值的下标
                var minIndex = itemArr.indexOf(minVal)

设置left/top
                $(this).css({
                    top: itemArr[minIndex],
                    left: minIndex * $(this).outerWidth(true)
                })
//更新数组里存储的高度
                itemArr[minIndex] += $(this).outerHeight(true)
            })
        }
//当页面大小发生改变的时候再去重新渲染
        $(window).resize(function (){
            WaterFall()
        })
    </script>
</body>
</html>

最后,附上这段代码的预览页面

相关文章

  • 瀑布流布局 的学习

    1- 实现瀑布流布局效果 瀑布流效果瀑布流代码木桶布局效果木桶布局代码瀑布流布局 2- 实现一个新闻瀑布流新闻...

  • 瀑布流、木桶布局

    瀑布流 瀑布流效果代码 木桶布局 木桶布局效果(加载有点慢)代码

  • 瀑布流照片墙布局

    title: 瀑布流照片墙布局 瀑布流概念 瀑布流布局是错落式的布局方式。它有一个特点,整个布局以列为单位,下一个...

  • CSS经典布局

    圣杯布局 瀑布流

  • 瀑布流

    瀑布流布局瀑布流jsonp新闻页

  • 瀑布流布局_木桶布局

    题目1: 实现一个瀑布流布局效果 瀑布流 题目2:实现木桶布局效果 木桶布局 题目3:**实现一个新闻瀑布流新闻网...

  • 瀑布流和懒加载结合

    实现一个瀑布流布局效果 瀑布流

  • 瀑布流

    什么是瀑布流: 欣赏 pinterest 样式分析 瀑布流,又被称作为瀑布流式布局,是一种比较流行的网站页面布局方...

  • 瀑布流

    1、什么是瀑布流 瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚...

  • 瀑布流的三种实现

    先来欣赏三个瀑布流的网站 pinterest 淘宝爱逛街 蘑菇街 什么是瀑布流? 瀑布流,又称瀑布流式布局。 这种...

网友评论

      本文标题:瀑布流布局

      本文链接:https://www.haomeiwen.com/subject/coyvbxtx.html