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

分享:纯 css 瀑布js 瀑布

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

8.7K40

分享一次纯 css 瀑布js 瀑布

博客地址:https://ainyi.com/60 现在百度图片,360 图片搜索,都是以一种瀑布形式展示,那么接下来,分享一波纯 css 瀑布js 瀑布 纯 css 写瀑布 multi-columns...-- more items --> .masonry 是瀑布容器,里面放置了列表 item,在 .masonry 设置 column-count(列数) 和 column-gap(列间距...,体验就会很不好 我们想要是这样: [no351tx20r.jpeg] 要实现如上,只能通过 js 来写瀑布 js瀑布 html 结构与上面类似,但这里我用图片来做示例 <div class=...瀑布实现方式 css 绝对定位方式:根据每张图片位置设置 top 和 left 值 // 瀑布效果 // 这里有一个坑(已经修复): // 因为是动态加载远程图片,在未加载完全无法获取图片宽高...就可以设置每张图片在瀑布每块 item top 值(每一行中最小 item 高度,数组查找) // item left 值:第一行:按照每块 item 宽度值*块数 //

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

多栏布局与JS实现瀑布

css3属性之多栏布局与JS实现瀑布    背景:之前打算自己总结一下flex布局知识点,发现自己无从下手,原因在何处:我反思了一下,其实原因很简单,使用次数少,更多时间使用了百分比,浮动和定位解决...有的时候甚至出现了这样笔记: 我打算坚持写博客,不论自己总结有多么差劲,也要坚持写,哪怕几年后我看到以前笔记,自己会偷偷笑出声。想想原来大一时技术还是那样稚嫩啊。...设定值,否则就会减少栏数来增加每栏宽度 css3多列和JS实现瀑布  给自己安利一波吧,看到网上很多瀑布效果,哇,简直棒极了有没有;于是我迫不及待打开V**,打开了pinterest官网...自己也梳理梳理逻辑: 我们都不陌生瀑布是同宽,但是高度不一,js主要工作就是根据高度来进行布局, 1)当一行排满后,准备排第二行时候,....box .pic img { display: block; width: 100%; } 梳理完了逻辑,该动手写js

2.9K90

分享 1个原生 JS 瀑布案例

瀑布流布局图片有一个核心特点 —— 等宽不定等高,瀑布流布局在国内网网站都有一定规模使用,比如pinterest、花瓣网等等。那么接下来就基于这个特点开始瀑布探索之旅。...pointer = this.getMinPointer(perList) } } 细心朋友也许发现了代码获取图片高度用到了offsetHeight 这个属性,这个属性高度之和等于图片高度...waterfall-box { float: left; width: 200px; padding-left: 10px; padding-bottom: 10px; } 至此完成了瀑布基本布局...联想到业务场景瀑布中下拉加载图片一般都来自 Ajax 异步获取,那么加载数据必然不能写死在库里,期望能实现如下调用(此处借鉴了 waterfall 使用方式), const waterfall...waterfall.on("load", function () { // 此处进行 ajax 同步/异步添加图片 }) 观察调用方式,不难联想到使用发布/订阅模式来实现它,关于发布/订阅模式,之前在Node.js

1.8K20

【iOS】瀑布实现

Simulator Screen Shot - iPhone 8 - 2020-01-16 at 17.32.16.png 2、实现思路 根据瀑布列数,创建记录maxY字典,例如两列瀑布,就创建两个...Key去记录左右两列当前最大maxY // 初始化字典,有几列就有几个键值对,key为列,value为列最大y值, // 初始值为上内边距 for (int i = 0; i < self.column...; i++) { self.maxYDic[@(i)] = @(self.sectionInset.top); } 根据设置列数,列间隙,以及左右inset,确定itemWidth - (CGFloat...在左列,还是右列,确定itemY和itemX,从而确定itemframe /// 找出最短一列 __block NSNumber *minIndex = @(0); [self.maxYDic...itemY = [self.maxYDic[minIndex] floatValue] + self.rowSpacing; } }else{ // 瀑布多列情况

1.9K10

原生 JS 实现一个瀑布插件

瀑布流布局图片有一个核心特点 —— 等宽不定等高,瀑布流布局在国内外网站都有一定规模使用,比如pinterest、花瓣网等等。那么接下来就基于这个特点开始瀑布探索之旅。...pointer = this.getMinPointer(perList) } } 细心朋友也许发现了代码获取图片高度用到了 offsetHeight 这个属性,这个属性高度之和等于图片高度...waterfall-box { float: left; width: 200px; padding-left: 10px; padding-bottom: 10px; } 至此完成了瀑布基本布局...联想到业务场景瀑布中下拉加载图片一般都来自 Ajax 异步获取,那么加载数据必然不能写死在库里,期望能实现如下调用(此处借鉴了 waterfall 使用方式), const waterfall...waterfall.on("load", function () { // 此处进行 ajax 同步/异步添加图片 }) 观察调用方式,不难联想到使用发布/订阅模式来实现它,关于发布/订阅模式,之前在 Node.js

2.3K40

iOS 瀑布封装

[瀑布.gif] 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout基础上封装带头脚视图瀑布控件。...目前支持竖向瀑布(item等宽不等高、支持头脚视图)、水平瀑布(item等高不等宽 不支持头脚视图)、竖向瀑布( item等高不等宽、支持头脚视图)三种样式瀑布流布局。...前言 :近几个月一直在忙公司ChinaDaily和国务院项目,没有抽出时间来写简书,现在终于算是告一段落了,抽出时间来更一篇 实现:主要是重写父类几个涉及布局属性方法,在对应布局属性方法根据需求自定义视图布局属性信息...下面是WSLWaterFlowLayout.h属性方法和代理方法,含义注释还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布...、头脚视图大小、行列数以及间距都可以在对应样式代理方法自定义,然后设置为UICollectionView自动流水布局样式,并结合UICollectionView用法使用,详情看示例 WSLWaterFlowLayout

1.6K80

iOS 瀑布封装

瀑布.gif 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout基础上封装带头脚视图瀑布控件。...目前支持竖向瀑布(item等宽不等高、支持头脚视图)、水平瀑布(item等高不等宽 不支持头脚视图)、竖向瀑布( item等高不等宽、支持头脚视图)三种样式瀑布流布局。...前言 :近几个月一直在忙公司ChinaDaily和国务院项目,没有抽出时间来写简书,现在终于算是告一段落了,抽出时间来更一篇 实现:主要是重写父类几个涉及布局属性方法,在对应布局属性方法根据需求自定义视图布局属性信息...下面是WSLWaterFlowLayout.h属性方法和代理方法,含义注释还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布...、头脚视图大小、行列数以及间距都可以在对应样式代理方法自定义,然后设置为UICollectionView自动流水布局样式,并结合UICollectionView用法使用,详情看示例 WSLWaterFlowLayout

1.9K80

图片瀑布,so easy!

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

1.6K10

原生javascript 实现瀑布

前言 刚用 jquery 实现了瀑布效果。但是其实现方法,我并不满意,所以我还在思考,如何更加简单明了实现瀑布效果。...让我们抛开 jquery,忘掉各种高级方法,用最原始方法去实现 瀑布效果。...javascript版本瀑布 代码原理已经写在注释里了。不再重复 /* 瀑布原生 javascript 实现方法 之前已经用 jquery 方法已经实现了瀑布。...(_obj,"li"); // 瀑布函数 function WaterFall(){ var _blank = 20, // 瀑布间距...但是,在原生JS,我用默认最小值为无穷大,var _minH = +Infinity 然后拿数组数字来和这个无穷大进行对比,如果这个数字比无穷大小,则将_minH赋值为当前数组值,然后再拿下一个数组数字来进行对比

1.3K20

iOS 瀑布之栅格布局

实现栅格布局效果示意图 需求示意图 确定需求 由上面的需求示意图可知模块最小单位是正方形,边长是屏幕宽除去边距间隔后四等份,而每个模块样式有小正方形(1:1)、大正方形(2:2)、横长方形(2...:1)、纵长方形(1:2),动态根据服务器下发模块样式绘制布局,可以横向滑动,限定为两行高度。...这个样式栅格布局我已封装集成在WSLWaterFlowLayout ,详情可以前往下载。...return CGRectMake(x, y, w, h); } 后台下发字段格式示意图 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout基础上封装带头脚视图瀑布控件...目前支持竖向瀑布(item等宽不等高、支持头脚视图)、水平瀑布(item等高不等宽 不支持头脚视图)、竖向瀑布( item等高不等宽、支持头脚视图)、栅格布局瀑布 4种样式瀑布流布局。

1.7K10
领券