JS瀑布流原理

作者: Tiny_z | 来源:发表于2017-01-12 09:53 被阅读124次

前段时间,在做项目的时候,有用到瀑布流。为了方便,当时直接上的插件,自己对里面的原理还不是很清楚,为了加深印象,特此把实现记录一下。
demo
源码

主要的原理:

  • 首先判断当前有多少列
  • 然后把每一列的第一个元素的高度存下来
  • 然后循环元素,每次找出这几列中高度最小的。然后计算元素的left和top(使用定位兼容好点)
    • 如果是更新,就需要计算好了之后插入到这个总容器中。
  • 最后更新当前列的高度,方便下一个循环可以拿到最近的数据

下面解释下Waterfall的主要参数

 function Waterfall(opt){
                this.parent = opt.parent;//父容器
                this.flowItems = opt.flowItems,//元素列表
                this.pin = opt.pin;// 总列数
                this.width = opt.width || 400; // 元素的宽度
                this.horizontalMargin = opt.horizontalMargin || 15; // 元素的水平间距
                this.verticalMargin = opt.verticalMargin || 15; // 元素的垂直间距
                this.columnList = new Array(this.pin);// 列高度存储的容器
            }

这个demo里面没有判断高度不固定的情况(例如元素是被图片撑开,图片没加载完,是不能准确拿到宽高的),如果有这种需求,就需要后台把宽高都传过来,前台通过宽度计算高度,然后再做操作(需要修改calculate方法)

相关文章

  • JS瀑布流原理

    前段时间,在做项目的时候,有用到瀑布流。为了方便,当时直接上的插件,自己对里面的原理还不是很清楚,为了加深印象,特...

  • 瀑布流布局

    瀑布流布局http://js.jirengu.com/dunawupili/1/ 2.新闻瀑布流http://js...

  • js/jQuery实现瀑布流

    html中主要代码: 实现瀑布流的js代码: css实现瀑布流只需要三行代码: 实现下拉刷新的js代码: js/c...

  • 瀑布流布局

    瀑布流布局的原理是什么? css:1设置容器为相对定位2给瀑布流子元素设置绝对定位 JS:1通过获取窗口的宽度与元...

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

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

  • 瀑布流组件初探-Vue.js

    waterfall-瀑布流组件 基于Vue.js的瀑布流组件 GitHub地址: https://github.c...

  • js瀑布流

    瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种...

  • js瀑布流

    兼容性1 点击300ms 使用fastclick2 移动端1px 在ios中使用0.5px3 js中获取浏览...

  • js瀑布流

    瀑布流布局思路: 1、css样式,图片的父级div样式设置为定位或者浮动。 2、找出图片父级元素(box)和最外元...

  • js瀑布流

网友评论

    本文标题:JS瀑布流原理

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