`
心语2012
  • 浏览: 45822 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

简单瀑布流

    博客分类:
  • js
 
阅读更多

老是有一些老同事跟我说,我想做个瀑布流怎么做,我说网上有组件啊,回答总是说我不需要用异步接口,我只需要把我静态demo转成瀑布流样式就可以了,我就简单做了一个,我把JS放到load 事件里主要是怕图片宽高不确定的情况下用。

 

$(window).on("load",function(){

     var waterfalls ={

           init:function(){

               var self = this;

               self.cfg={

                    colu:4//这里定义4列可以自己配置

                    tArry:[],//每一列的最后一个的top值

                    lArry[],//每一列的left值

                           node:".item",//节点样式

                           width:235,//列宽

                            space:15//间距

               };

              self. _initArray()//初始化数组

              self._render();//渲染瀑布流

           },

          /**

          *初始化数组

          */

          _initArray:function(){

               var self = this;

               for(var i=0;i<l=self.cfg.colu;i++){

                    self.cfg.tArray.push(0)    ;

                    self.cfg.lArray.push(i*(self.cfg.width+self.cfg.space));

                }

          },

           /**

          *得到最小高度列

          */

         _getMin:function(){

                var self = this,minTop =self.cfg.tArray[0],minIndex= 0;

                 for(var i=0;i<l=self.cfg.colu;i++){

                    if(self.cfg.tArray[i]<minTop){

                        minTop = self.cfg.tArray[i];

                         minIndex = i;

                   };

                };

               return minIndex;

          },

         /**

          *渲染瀑布流

          */

        _render:function(){

              var self = this;

              $(self.cfg.item).each(function(item){

                   var min = self._getMin();

                   $(item).css({

                        top:self.cfg.tArray[min],

                        left:self.cfg.lArray[min]

                    });

                   self.cfg.tArray[min] += $(item).height()+15;  

             })

        }

     };

    waterfalls.init();

});

 

 

分享到:
评论

相关推荐

    简易瀑布流 非定位

    瀑布流 非定位 简易瀑布流

    Glide简单瀑布流DEMO

    在这个名为“Glide简单瀑布流DEMO”的项目中,我们将探讨如何结合Glide实现一个简单的瀑布流布局。 首先,我们要理解瀑布流布局的基本概念。瀑布流布局,又称为流式布局或Pinterest布局,特点是每一列的高度不固定...

    简易瀑布流

    在本项目“简易瀑布流”中,我们将探讨如何实现一个简单的瀑布流布局,主要涉及HTML、CSS以及jQuery的运用。 首先,HTML是构建网页的基础,我们需要创建一个容器元素来承载所有的子元素,通常这些子元素是图片或者...

    iOS简单瀑布流的实现

    在这个“iOS简单瀑布流的实现”中,我们将探讨如何创建一个基础的瀑布流布局,以及可能需要进行的扩展。 1. **基本概念**:瀑布流的核心在于计算每个单元格的位置和大小,使其能在不同列中适配。这通常涉及两个关键...

    原生js简单瀑布流图片无限加载带鼠标悬停图片遮罩效果

    【标题】原生JS简单瀑布流图片无限加载带鼠标悬停图片遮罩效果 瀑布流布局,也称为Masonry布局,是一种网页布局样式,其中各元素可以不等宽,但垂直对齐,形成类似瀑布的效果。这种布局常用于图片展示网站,如...

    源生简易瀑布流

    实现源生简易瀑布流,我们主要关注以下几个关键点: 1. **HTML结构**:首先,我们需要创建一个容器div,用于包含所有的元素(通常为img标签或自定义的div)。每个元素都要设置好宽高比,以保持原始比例。 ```html ...

    ios-简单瀑布流.zip

    "ios-简单瀑布流.zip"是一个压缩包,其中包含了一个名为"EWaterFallView"的项目,它提供了对iOS应用中实现瀑布流布局的支持,并且兼容CocoaPods,这是一种方便的iOS依赖管理工具。 EWaterFallView项目可能是基于...

    伪瀑布流_uniapp瀑布流_uniapp瀑布流_插件_

    描述中提到的“uniapp插件(组件) 拖入即用 只需要引入 相关dom”,意味着这个插件是一个高度封装的解决方案,开发者无需深入了解瀑布流布局的复杂实现,只需简单地将插件拖入项目,并在页面中引入对应的DOM元素,...

    Jquery简单瀑布流代码示例 咿呀网提供

    在"Jquery简单瀑布流代码示例 咿呀网提供"这个项目中,我们将使用jQuery结合一个名为`jquery.masonry.min.js`的插件来创建瀑布流布局。`jquery.masonry.min.js`是Dave DeSandro开发的一个轻量级插件,它可以自动调整...

    js简单瀑布流图片无限加载带鼠标悬停图片遮罩效果

    【瀑布流布局】 瀑布流布局,又称为Masonry布局,是一种常见的网页设计布局方式,尤其在图片展示网站中广泛应用。这种布局模式模仿了物理世界中的瀑布,使得页面中的元素可以像水滴一样自然地垂直下落,形成不规则但...

    css简单瀑布流

    学习css简单瀑布流,直接浏览器打开html文件

    比较容易懂的瀑布流代码

    在提供的标题"比较容易懂的瀑布流代码"中,我们可以理解这是一段基于ThinkPHP框架实现的简单瀑布流代码。ThinkPHP是中国较为流行的PHP开发框架,它提供了一套完整的MVC(Model-View-Controller)模式,使得开发者...

    瀑布流布局,点击加载更多效果

    瀑布流布局,也被称为Masonry布局,是一种常用于图片展示或商品列表的网页设计模式,它的特点是元素在页面上自适应地垂直排列,形成一种类似瀑布倾泻的效果。这种布局方式能够有效地利用屏幕空间,使得视觉效果更加...

    RecyclerView的各种样式_水平_垂直_普通网格_简单瀑布流

    本项目通过Android Studio 2.3.3环境实现,展示了RecyclerView的多样化布局,包括水平布局、垂直布局、普通网格布局以及简单的瀑布流布局。 1. RecyclerView基本使用 RecyclerView的核心组件包括LayoutManager、...

    国外多样式瀑布流

    3. **多样式支持**:通过简单的配置,可以实现不同类型的元素在瀑布流中以不同的样式展示,比如图片、文本块等。 4. **延迟加载**:为了提高页面加载速度,Wookmark支持懒加载,即只有当用户滚动到可视区域时,才会...

    瀑布流实现

    1. **纯CSS实现**:利用CSS3的`column-count`和`column-gap`属性,可以创建多列布局,但这种方法在元素的动态加载和响应式设计方面存在局限性,适用于静态内容的简单瀑布流布局。 2. **JavaScript库实现**:例如...

    简单实用瀑布流

    在给定的"demo2"文件中,很可能是包含了一个简单的瀑布流实现示例,可能包括HTML结构、CSS样式和JavaScript脚本。 要深入了解和使用瀑布流布局,你需要掌握以下知识点: 1. CSS布局技术:包括盒模型、Flexbox、Grid...

    简单的瀑布流

    在这个“简单的瀑布流”项目中,我们主要关注的是如何使用jQuery和JavaScript实现这一效果。 首先,瀑布流的核心是计算元素的宽度和位置,以确保它们在页面上正确地排列。通常,我们会选择一个固定宽度的列,并根据...

    简单无脑流瀑布流布局,方便开发

    1. **CSS Flexbox布局**:现代浏览器支持的Flexbox(弹性盒布局)提供了创建瀑布流布局的一个简单方法。通过设置容器的`display: flex`和`flex-wrap: wrap`属性,可以让子元素在一行内自动换行。再利用`align-items:...

    基于jQuery简单可自定义响应式手机电脑端瀑布流

    【基于jQuery简单可自定义响应式手机电脑端瀑布流】是一种流行的技术实现方式,用于创建在不同设备上都能良好展示的动态布局。这种布局模式,通常称为“瀑布流”或“Masonry布局”,以视觉上的瀑布效果而得名,即...

Global site tag (gtag.js) - Google Analytics