首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS实现瀑布页面布局

个人对瀑布布局理解: 每列的宽度相等而高度不等,且第二行的第一个容器需要放在第一行高度最小的容器下面,依次类推放置。...附上代码: 代码仅实现了瀑布布局方式和 resize 监听,如果大家有需要,可以自己拓展下:实现监听滚动事件,页面滚动加载图片的功能。 代码中写了详细注释,可以直接使用。 瀑布布局...(pageWidth / (itemWidth + gap)); // 瀑布实现原则: // 所有图片元素绝对定位,从第二行开始,依次从第一行图片元素高度最小的下方填充...,这里注意,不是从左至右填充,即优先填补空位,填补一个后,再填补下一个较大的空位 // 定义第一行图片的所有高度的数组,之后每张图片下方填充图片后,会更新数组对应位置下的最小高度

2.8K40

iOS 瀑布之栅格布局

:1)、纵长方形(1:2),动态的根据服务器下发模块样式绘制布局,可以横向滑动,限定为两行的高度。...答案当然是用UICollectionView了,然后自定义流水布局UICollectionViewLayout,主要代码如下:计算记录每一个cell对应的布局属性。...这个样式的栅格布局我已封装集成在WSLWaterFlowLayout 中,详情可以前往下载。...CGRectMake(x, y, w, h); } 后台下发字段格式示意图 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布控件...目前支持竖向瀑布(item等宽不等高、支持头脚视图)、水平瀑布(item等高不等宽 不支持头脚视图)、竖向瀑布( item等高不等宽、支持头脚视图)、栅格布局瀑布 4种样式的瀑布布局

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    图片瀑布,so easy!

    什么是图片瀑布 用一张花瓣网页的图片布局可以很清楚看出图片瀑布的样子: ?...简单来说,就是有很多图片平铺在页面上,每张图片的宽度相同,但是高度不同,这样错落有致的排列出 n 列的样子很像瀑布,于是就有了瀑布图片一说。...实现原理 1、第一种方式 第一种方式前提是:图片的宽度固定,但是列可变(根据屏幕大小) 通过上面的介绍,我们知道要实现瀑布的前提是宽度一致(假如为100px),高度可以不相同。...= $('img').outerWidth(); // 200 waterfallHandler(); // 瀑布处理 function waterfallHandler...然后遍历图片,将图片放入容器高度最小的容器中即可。 这里我们使用js来添加图片,而不是事先写好在html中了。 实现代码 <!

    1.6K10

    多栏布局与JS实现瀑布

    css3属性之多栏布局与JS实现瀑布    背景:之前打算自己总结一下flex布局的知识点,发现自己无从下手,原因在何处:我反思了一下,其实原因很简单,使用的次数少,更多的时间使用了百分比,浮动和定位解决...你可以使用这个工具,很方便的查看你的浏览器内核以及版本信息http://ie.icoa.cn/   2)Css3多列属性:css3多列主要是五个属性 column-count   <规定元素被分隔的列数...多列和JS实现瀑布  给自己安利一波吧,看到网上很多瀑布的效果,哇,简直棒极了有没有;于是我迫不及待的打开V**,打开了pinterest的官网。...自己也梳理梳理逻辑: 我们都不陌生瀑布是同宽的,但是高度不一,js主要的工作就是根据高度来进行布局, 1)当一行排满后,准备排第二行的时候,...把第一个图片放到上一行图片高度最小处,以此类推, 另外有一点就是自动加载,这里我做一个条件来判断是否加载, 2)当最后一个的元素距离网页顶部的高度(offsetTop)+ 这个元素高度的一半

    3K90

    Swift 自定义布局实现瀑布视图

    瀑布视图的惊艳之处就在于它的每个 Cell 的尺寸都是不一致的,那如何生成动态高度的 Cell 呢!...了解完需要实现的函数后,接下来就开始计算瀑布视图的布局属性了,在这里我先讲一下我实现的大概思路吧!...由于我们瀑布视图的每个 Cell 的高度是动态的,为了实现这个需求,我们可以声明一个 protocol 并提供一个返回动态高度的方法,来为每个 Cell 提供动态的高度,代码如下: protocol...,然后并把相交的属性返回 好了,到这里关于瀑布视图的布局就讲完了,附上 WaterFallFlowLayout 的全部代码,供大家参考: import UIKit protocol WaterFallLayoutDelegate...50) } } 将上述代码添加到 Xcode 工程中编译并运行,你就会看到 Cell 根据照片的高度正确放置并设置了大小: 好了, 利用 UICollectionView 控件与自定义布局实现瀑布的内容到此就结束了

    2.5K30

    python GUI框架pyqt5 对图片进行流式布局的方法(瀑布flowlayout)

    流式布局 流式布局,也叫做瀑布布局,是网页中经常使用的一种页面布局方式,它的原理就是将高度固定,然后图片的宽度自适应,这样加载出来的图片看起来就像瀑布一样整齐的水流淌下来。...pyqt流式布局 那么在pyqt5中我们怎么使用流式布局呢?pyqt没有这个控件,需要我们自己去封装,下面是流式布局的封装代码。...下面是我们写的一个瀑布显示图片的代码: from PyQt5.QtCore import QPoint, QRect, QSize, Qt import os from PyQt5 import QtCore...QApplication(sys.argv) mainWin = Window() mainWin.show() sys.exit(app.exec_()) 到此这篇关于python GUI框架pyqt5 对图片进行流式布局的方法...(瀑布flowlayout)的文章就介绍到这了,更多相关python pyqt5图片流式布局内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    1.5K10

    CSS3实现瀑布布局(display: flexcolumn-countdisplay: grid)

    前言 在css3到来之前,都是用js来操作dom元素,计算位置,大小,形成瀑布布局。但是有了css3之后,一切实现起来就太简单了,没有复杂的逻辑,轻松的几行样式代码就可以搞定。...回顾以前(js瀑布) 基于waterfall.js(11.8kb),还得写入基础的样式,初始化等等,对比其他js,已经是很简单了。...$lineCount: 4; $count: 8; // 随机数(瀑布某块的高度) @function randomNum($max, $min: 0, $u: 1) { @return (...$count: 32; // 随机数(瀑布某块的高度) @function randomNum($max, $min: 0, $u: 1) { @return ($min + random($...演示地址: CSS 实现瀑布布局(display: grid) 总结 通过,这3种CSS瀑布布局,你更喜欢哪一种呢? 个人更喜欢column-count,看起来更加清晰,容易理解,代码量也很少。

    2.7K10

    瀑布流式布局怎么实现(什么是瀑布布局)

    JS 实现瀑布布局 前言 一、JS 实现瀑布 二、column 多行布局实现瀑布 三、flex 弹性布局实现瀑布 四、3种方式对比 前言 今天逛闲鱼的时候观察到每一行的高度不是相同的,经了解才知道原来这是一种瀑布布局...,感觉挺有意思,于是决定研究一下,在网上也找了一些方案,实现瀑布大概有3种方式。...一、JS 实现瀑布 思路分析 瀑布布局的特点是等宽不等高。 为了让最后一行的差距最小,从第二行开始,需要将图片放在第一行最矮的图片下面,以此类推。...(); } 效果如下 二、column 多行布局实现瀑布 思路分析: column 实现瀑布主要依赖两个属性。...class="item"> 效果如下: 三、flex 弹性布局实现瀑布

    1.5K40

    分享:纯 css 瀑布 和 js 瀑布

    博客地址:https://ainyi.com/60 分享一次纯 css 瀑布  和 js 瀑布 纯 css 写瀑布 1.multi-columns 方式: 通过 Multi-columns 相关的属性... column-count、column-gap 配合 break-inside 来实现瀑布布局。...看到这里,我们可以发现,使用纯 css 写瀑布,每一块 item 都是从上往下排列,不能做到从左往右排列: ? 这样子若是动态加载图片瀑布,体验就会很不好 我们想要的是这样: ?...这样做只能通过 js 来写瀑布 js 写瀑布: html 结构与上面类似,这里我用图片来做示例: 1 2 <...: css 的绝对定位方式:根据每张图片的位置设置 top 和 left 值: 1 //瀑布效果 2 //这里有一个坑(已经修复): 3 //因为是动态加载远程图片,在未加载完全无法获取图片宽高

    8.9K40

    实现瀑布布局

    实现瀑布布局 瀑布,又称瀑布流式布局。...是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部,瀑布的主要特性便是错落有致,定宽而不定高的设计让页面区别于传统的矩阵式图片布局模式...实例 主体思路是记录每一列的高度,父容器相对定位,成员绝对定位,利用top与left属性控制位置,每次新增加成员时找到高度最低的那个将成员置于其下方,即可实现瀑布布局。...,还可以使用CSS3新增的column-*多列布局来实现,这两种也就是纯CSS实现的瀑布布局的方式,但是由于这两种方式都是将成员纵向排列,并不适合需要动态插入成员的布局,当需要动态插入成员时还是需要使用...DOCTYPE html> Js瀑布布局 <meta name="viewport" content="width=device-width

    85510

    浅析瀑布布局及其原理视频_jquery瀑布布局

    一、什么是瀑布 很多时候我们会看到一些Vlog网站或者展示图片的网站,它们的图片明明每一张的高度大小都不同,但是却能自动地适应,排成一行一行地展示,并且下拉到底的时候,加载的图片也会自动适应,这就是瀑布...二、实现原理 要做到每一张图片都根据上面的高度自动适应排列,那么我们就不能单纯地靠html+css布局了,需要用到js来帮助计算位置(其实用CSS3也能布局)。那么计算什么呢?...首先,我们需要理清一个思路,就是这个布局是按一列列来看的,如下图: 我们要做的,其实就是在每一列下面插入新的图片,这样它就会紧挨着上面的图片对齐。...四、瀑布的核心 实现瀑布的核心其实就两个: 找出图片高度最小的那一列,再那一列插入,然后继续找下一个高度最小的,一直循环直到插满图片为止; 计算出每一列距离浏览器整体的距离,也就是position里的...true:false; } // 追加瀑布效果 function appendBox(wrap,boxes){ // 先判断是否展示到了底部 if(getBottom(wrap)){ for (i in

    1.4K20

    瀑布布局方案

    调研: 1、蘑菇街/堆糖/花瓣:absolute 2、手淘:flex,但不算瀑布,每个card高度一样 一、使用flex布局(最妥当) 核心: 1、div分两列 2、遍历数据分两组 3、每次渲染完...) this.data2 = JSON.parse(JSON.stringify(data2)) }, ---- 二、使用column(最先进——纯css) 1、核心 multi-column实现瀑布主要依赖以下几个属性...列数由总宽度与每列宽度计算得出 column-gap: 设置列与列之间的间距 2、避免断层 1)表现: 最后一个元素的文本内容被自动断开,一部分在当前列尾,一部分在下一列的列头 2)原因: multi-column布局会将其内的元素自动进行流动和平衡...兼容性一般:column-fill: balance 只在firefox下支持,大部分浏览器只支持默认的column-fill: fill,就只能先渲染完第一列再渲染第二列 2、不适合需要顺序展示的双瀑布...---- 三、使用absolute布局(最古早) 利: 1、一般不会出错的方案 弊: 1、代码繁琐 ---- 参考: https://juejin.cn/post/6844904142058553358

    1.3K20

    工作实战案例,瀑布布局实现(方法:CSS3,原生JS,jQuery)。

    涉及技术点: HTML + CSS简单布局 jQuery基础运用,瀑布布局实现3种方法:原生JS,jQuery,CSS3 CSS3版本: 瀑布布局(CSS版本) 代码: /*css代码*/... 原生JS: 瀑布布局...oParent.style.cssText="width:"+oBoxW*cols+"px;margin:0 auto"; var hArr=[]; /* 当拉宽/窄浏览器后,再滚动图片会出现图片重叠的...原因:当拉宽/窄浏览器后,某些已经使用了position定位的图片节点不能恢复到第一排,因为第一排不能有绝对定位的样式,所以在判断不是第一排加绝对定位之前要把前面所有设置过的样式全部清零。...boxArr.push(oElements[i]); } } return boxArr; } jQuery: 瀑布布局

    1.4K10

    iOS 瀑布封装

    [瀑布.gif] 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布控件。...目前支持竖向瀑布(item等宽不等高、支持头脚视图)、水平瀑布(item等高不等宽 不支持头脚视图)、竖向瀑布( item等高不等宽、支持头脚视图)三种样式的瀑布布局。...下面是WSLWaterFlowLayout.h中的属性方法和代理方法,含义注释的还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布...item等宽不等高 */ WSLHorizontalWaterFlow = 1, /** 水平瀑布 item等高不等宽 不支持头脚视图*/ WSLVHWaterFlow = 2, /...** 竖向瀑布 item等高不等宽 */ WSLLineWaterFlow = 3 /** 线性布局 待完成,敬请期待 */ } WSLFlowLayoutStyle;//样式 @class

    1.6K80

    iOS 瀑布封装

    瀑布.gif 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布控件。...目前支持竖向瀑布(item等宽不等高、支持头脚视图)、水平瀑布(item等高不等宽 不支持头脚视图)、竖向瀑布( item等高不等宽、支持头脚视图)三种样式的瀑布布局。...下面是WSLWaterFlowLayout.h中的属性方法和代理方法,含义注释的还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布...item等宽不等高 */ WSLHorizontalWaterFlow = 1, /** 水平瀑布 item等高不等宽 不支持头脚视图*/ WSLVHWaterFlow = 2, /...** 竖向瀑布 item等高不等宽 */ WSLLineWaterFlow = 3 /** 线性布局 待完成,敬请期待 */ } WSLFlowLayoutStyle;//样式 @class

    2K80

    Objectiv-c - UICollectionViewLayout自定义布局-瀑布Demo地址

    写在前面 弄了下个人站...防止内容再次被锁定...所有东西都在这里面 welcome~ 个人博客 最近刚写的一个简单的瀑布. 整体思路可能不是很完善. 不过也算是实现效果了....瀑布.gif 思路: 自定义UICollectionViewLayout实际上就是需要返回每个item的fram就可以了....All rights reserved. // #import @protocol WaterFallLayoutDelegate ///设置图片高度 //width...UIEdgeInsets edge;//设置边距 @property(nonatomic,strong)iddelegate; @end 由于我们的自定义布局继承...每次布局都会调用 //准备布局做一些准备工作,例如初始化 - (void)prepareLayout; //这个方法在prepareLayout后调用.每次拖动都会调用,有点类似scrollview

    53040
    领券