美文网首页
瀑布流布局

瀑布流布局

作者: 学的会的前端 | 来源:发表于2019-08-05 14:30 被阅读0次

瀑布流布局---JS

内容的宽度是相等的,高度是随机的。

  • 设置定位点
  • 第二行找最短的排列。相同高度从左到右排列。
  • 容器的宽度除以元素的宽度,就得到元素的个数。
  • 数组中存储的是元素的高度。
  • 每次插入一个元素,数组就更新一次。
<!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>Document</title>
    <script src = "http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
    <style>
        .content {
            position: relative;
        }
        .item {
            position: absolute;
            width: 200px;
            margin-right: 10px;
            margin-top: 10px;
    /*位置发生变化的时候,以一种渐变的方式移动,加上之后,有一个动画的效果*/
            transition: all 1s;
        }
        .h1 {
            height: 200px;
            background-color: #f4b300;
        }
        .h2 {
            height: 300px;
            background-color: #691bb8;
        }
        .h3 {
            height: 400px;
            background-color: #006c12;
        }
    </style>
</head>
<body>
   <div class = "content">
       <div class = "item h1">
           1
       </div>
       <div class = "item h3">
           2
       </div>
       <div class = "item h2">
           3
       </div>
       <div class = "item h1">
           4
       </div>
       <div class = "item h1">
           5
       </div>
       <div class = "item h3">
           6
       </div>
       <div class = "item h3">
           7
       </div>
       <div class = "item h2">
           8
       </div>
       <div class = "item h1">
           9
       </div>
       <div class = "item h3">
           10
       </div>
       <div class = "item h3">
           11
       </div>
       <div class = "item h3">
           12
       </div>
       <div class = "item h2">
           13
       </div>
       <div class = "item h2">
           14
       </div>
   </div> 
  
   <script>
   
    //打开页面的时候 ,直接布局
    waterfull()
    //当窗口发生变化的时候
    $(window).resize(function(){
        waterfull()
    })
    //当窗口发生变化的时候,随之重新排列
    function waterfull(){
           
        //得到元素的宽度
        var nodeWidth = $('.item').width()
        //每一行可以放的元素的个数,取整
        var colLength = parseInt($('.content').width()/nodeWidth)
        //定义一个数组,并初始化
        var itemArr = []
        for(var i = 0; i < colLength; i++){
            itemArr[i] = 0
        }
        $('.item').each(function(){
            //找到数组中的最小值
            var minValue = Math.min.apply(null,itemArr)
            //得到最小元素的下标
            var minIndex = itemArr.indexOf(minValue)
            $(this).css({
                top: itemArr[minIndex],
                //加true包括了元素的外边框
                left: $(this).outerWidth(true) * minIndex
            })
            //元素放入之后,这一列的高度发生了变化
            itemArr[minIndex] += $(this).outerHeight(true)
        })
    }

   </script>
</body>
</html>

相关文章

  • 瀑布流布局 的学习

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

  • 瀑布流、木桶布局

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

  • 瀑布流照片墙布局

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

  • CSS经典布局

    圣杯布局 瀑布流

  • 瀑布流

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

  • 瀑布流布局_木桶布局

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

  • 瀑布流和懒加载结合

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

  • 瀑布流

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

  • 瀑布流

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

  • 瀑布流的三种实现

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

网友评论

      本文标题:瀑布流布局

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