美文网首页
瀑布流div版

瀑布流div版

作者: Farewell_V587 | 来源:发表于2017-11-06 20:41 被阅读0次

瀑布流

瀑布流是一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内流行开来。国内大多数清新站基本为这类风格。

瀑布流特点:

1、琳琅满目:整版以图片为主,大小不一的图片按照一定的规律排列。
2、唯美:图片的风格以唯美的图片为主。
3、操作简单:在浏览网站的时候只需要轻轻滑动一下鼠标滚轮,一切的美妙的图片精彩便可呈现在你面前。

1.思路

每次生成高度随机的div,将页面分成几块,每次插入新的div之前先找到高度最小的块依次取容器中的所有数据块,先寻找当前高度最小的某列,之后根据列序号,确定数据块的left,top值,left 为所在列的序号乘以列宽,top 为所在列的当前高度,最后更新所在列的当前高度加上这个数据块元素的高度,至此,插入一个元素结束;
·当所有元素插入完毕后,调整容器的高度为各列最大的高度值,结束依次调整。

2.效果 瀑布流

先将CSS部分和HTML部分写好


image.png

将样式写好以后就开始我们的JS部分吧
首先我们要获取我们需要的整体

var wrap = document.getElementsByClassName("wrap")[0];

然后在for循环中遍历创建20个div

for (var i=1;i<21;i++){
        var lis = document.createElement('div');
            var random = parseInt(Math.random()*150+50);//随机生成li高度
            //设置生成的li的样式
            lis.style.height = random+"px";
            lis.style.backgroudColor ="red";
            lis.innerHTML=i;
            lis.style.width="200px";
            lis.style.position="absolute";
            //设置最矮的块的下标
            var minIndex = 0;
            //将高度存进数组里;
            var arr =[0,0,0,0,0];
          //遍历几个块,找寻最矮高度的块
            for (var j = 0; j < arr.length; j++){
            if (arr[minIndex] > arr[j]){
                minIndex = j;
            }
            console.log(minIndex);
        }
        //设置li的top值和left值
        lis.style.top=arr[minIndex]+"px";
        lis.style.left = 210*minIndex+"px";
        //数组里的最矮高度的那个值加上要添加进去的那个div高度值
        arr[minIndex]+=(randomS+10);
        //将这个div添加到wrap中
        wrap.appendChild(lis);
}
核心代码

结语

这样的一个简单效果的瀑布流就写好了

相关文章

  • 瀑布流div版

    瀑布流 瀑布流是一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块...

  • css实现图片的瀑布流

    ··· 其中div.masonry是瀑布流的容器, 这个div.column称为列表项目的单独容器,其里面放置了n...

  • UL版瀑布流

  • 移动版瀑布流js

    functionrandH(min,max) { returnMath.floor(Math.random()*(...

  • 瀑布流(Swift版和OC版)

    原理分析 : 啥叫瀑布流?就是每次加载出来的cell(或者叫item)都是放到最短的那行,像瀑布流水一样出现,其关...

  • 瀑布流的三种实现

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

  • 瀑布流布局 的学习

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

  • Swift版-CollectionView瀑布流框架搭建

    首先声明该Swift版是根据iOS-CollectionView瀑布流框架搭建这篇文章的OC版思路来实现的,首先来...

  • iOS瀑布流

    瀑布流Demo 使用UICollectionView实现瀑布流 自定义UICollectionViewLayout...

  • 「实战」蘑菇街 PC 端首页,瀑布流布局的实现原理与细节技巧

    零、介绍 这篇文章主要是介绍网站页面瀑布流布局的实现,主要包括: 瀑布流是什么 瀑布流的实现原理 瀑布流的使用场景...

网友评论

      本文标题:瀑布流div版

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