首页
学习
活动
专区
圈层
工具
发布

分享:纯 css 瀑布流 和 js 瀑布流

博客地址:https://ainyi.com/60 分享一次纯 css 瀑布流  和 js 瀑布流 纯 css 写瀑布流 1.multi-columns 方式: 通过 Multi-columns 相关的属性...-- more items --> 51 .masonry 是瀑布流容器,里面放置了列表 item,在 .masonry 中设置 column-count...看到这里,我们可以发现,使用纯 css 写瀑布流,每一块 item 都是从上往下排列,不能做到从左往右排列: ? 这样子若是动态加载图片的瀑布流,体验就会很不好 我们想要的是这样: ?...这样做只能通过 js 来写瀑布流 js 写瀑布流: html 结构与上面类似,这里我用图片来做示例: 1 2 瀑布流效果 欢迎浏览 GitHub:https://github.com/Krryxa 博客地址:https://ainyi.com/60

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

    iOS 瀑布流封装

    [瀑布流.gif] 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布流控件。...目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。...下面是WSLWaterFlowLayout.h中的属性方法和代理方法,含义注释的还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布流...item等宽不等高 */ WSLHorizontalWaterFlow = 1, /** 水平瀑布流 item等高不等宽 不支持头脚视图*/ WSLVHWaterFlow = 2, /...*/ @property (nonatomic, assign) WSLFlowLayoutStyle flowLayoutStyle; @end 初始化仅三行代码,只需设置代理和样式,item的大小

    1.9K80

    iOS 瀑布流封装

    瀑布流.gif 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布流控件。...目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。...下面是WSLWaterFlowLayout.h中的属性方法和代理方法,含义注释的还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布流...item等宽不等高 */ WSLHorizontalWaterFlow = 1, /** 水平瀑布流 item等高不等宽 不支持头脚视图*/ WSLVHWaterFlow = 2, /...*/ @property (nonatomic, assign) WSLFlowLayoutStyle flowLayoutStyle; @end 初始化仅三行代码,只需设置代理和样式,item的大小

    2.3K80

    分享一次纯 css 瀑布流 和 js 瀑布流

    博客地址:https://ainyi.com/60 现在百度图片,360 图片搜索,都是以一种瀑布流的形式展示,那么接下来,分享一波纯 css 瀑布流 和 js 瀑布流 纯 css 写瀑布流 multi-columns...-- more items --> .masonry 是瀑布流容器,里面放置了列表 item,在 .masonry 中设置 column-count(列数) 和 column-gap(列间距...max-width: 500px) { .masonry { column-count: 1; /* two columns on larger phones */ } } 那么以上代码产生的效果是...,每一块 item 都是从上往下排列,不能做到从左往右排列: [kc4aje4u6f.jpeg] 这样子若是动态加载图片的瀑布流,体验就会很不好 我们想要的是这样: [no351tx20r.jpeg]...要实现如上,只能通过 js 来写瀑布流 js 写瀑布流 html 结构与上面类似,但这里我用图片来做示例

    2.7K40

    图片瀑布流,so easy!

    什么是图片瀑布流 用一张花瓣网页的图片布局可以很清楚看出图片瀑布流的样子: ?...简单来说,就是有很多图片平铺在页面上,每张图片的宽度相同,但是高度不同,这样错落有致的排列出 n 列的样子很像瀑布,于是就有了瀑布流图片一说。...实现原理 1、第一种方式 第一种方式前提是:图片的宽度固定,但是列可变(根据屏幕大小) 通过上面的介绍,我们知道要实现瀑布流的前提是宽度一致(假如为100px),高度可以不相同。...实现代码 下面是未处理的原始代码,图片之间间隔很多空白,影响美观。 <!...200px) let imgWidth = $('img').outerWidth(); // 200 waterfallHandler(); // 瀑布流处理

    1.9K10

    iOS 瀑布流实现「建议收藏」

    UICollectionViewDelegateFlowLayout的可选方法,它里面有一个我们自己定义的 imageNewSizeWitholdWidth 的方法,我们用这个方法来对图片按照我们的想法进行压缩,具体公式在代码的注释块中...10,10,10,10};//内边距的集合,依次是上,左,下,右(逆时针) @interface WaterfallFlowLayout : UICollectionViewFlowLayout @end 可以从上面的代码中看到...array]; //初始化cell信息的字典 _cellInfoDic = [NSMutableDictionary dictionary]; //设置代理为主控制器,我们的瀑布流是继承于系统的流式布局...既然要实现实现瀑布流,就需要比较每一列的高度,然后把要插入的item插入到高度最小的那一列去。因此,我们需要比较每一列的高度,找出最小列。...这就和之前找最短一列道理是一样的,这里直接上代码了。

    2.8K41

    两行css代码实现瀑布流,html,css最简单的瀑布流实现方式且没有缺点!

    但可以一链代码解决 这个列表显示顺序是 左边 123右边456,不符合正常展示逻辑;然后可以使用js对数据进行预处理; 大致逻辑如下: const oldList = [1, 2, 3, 4, 5, 6...] 这样处理一下就可以 让列表展示顺序变为 左边 1, 3, 5, 7 右边 2, 4, 6 2019年1月12日 我用的chrome 版本 70.0.3538.102(正式版本) (64 位) 以上代码没有问题...moz-column-gap:40px; /* Firefox */ -webkit-column-gap:40px; /* Safari 和 Chrome */ column-gap:40px; 以此类推 html代码大致如下...实现方式如下: 一行里面两列,可以控制每列数量相等, 每列里面各自循环,下面伪代码 但是有个坑,如果左边都很高,右边比较矮,就会出现右边空很多的内容, 在找解决办法 下面的 指的是 css

    2.1K30

    HarmonyOS 开发实践 —— 瀑布流性能优化

    二、懒加载 示例代码 中已经使用了LazyForEach进行数据懒加载,WaterFlow布局时会根据可视区域按需创建FlowItem组件,并在FlowItem滑出可视区域时销毁以降低内存占用。...相关流程如下:瀑布流组件加载流程图示例代码 中使用的是onScrollIndex加载数据。六、固定宽高与长列表不同的,瀑布流布局中各个卡片的高度是不同的,这就对瀑布流布局绘制提出了新的挑战。...瀑布流的卡片高度是由瀑布流卡片自适应瀑布流的宽度得到的,因此卡片的高度无法直接指定。这就会使卡片渲染以后得到的高度与占位符的高度不一致,从而造成卡片的闪烁效果。...瀑布流页面卡片宽高计算逻辑示意图如上图所示,两列瀑布流卡片的宽度 = (屏幕宽度 - 2 * 组件外边距(margin) - 瀑布流组件内边距(gap))/ 2。...瀑布流卡片中图片的高度imageHeight = 图片原始高度 / 图片原始宽度 * 瀑布流卡片宽度。瀑布流卡片中描述性的高度titleHeight根据标题长度不同需设置不同的高度,计算逻辑。

    41120
    领券