首页
学习
活动
专区
工具
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 //因为是动态加载远程图片,在未加载完全无法获取图片宽高...就可以设置每张图片瀑布中每块item的top值(每一行中最小的item高度,数组查找) 9 //item的left值:第一行:按照每块item的宽度值*块数 10 // 其他行

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

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

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

    2.3K40

    react-masonry-css瀑布的基本使用

    瀑布介绍 瀑布,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。逐渐在国内流行开来。...一般使用的网站类型有: 图片画廊:展示不同尺寸的图片,自动调整布局。 博客文章:以瀑布流形式展示博客文章摘要,提高阅读体验。 电商产品列表:展示不同类别和尺寸的产品,增强用户浏览体验。...介绍 react-masonry-css 是一个用于创建快速、响应式瀑布流布局的 React 组件,充分利用 CSS 和 React 的虚拟 DOM 渲染。...基本使用 安装 npm install react-masonry-css pnpm install react-masonry-css yarn add react-masonry-css 基本使用...导入 import Masonry from "react-masonry-css"; 定义一个图片列表数组,其中里面每一项都是一个包含id和图片url 的对象 const images = [

    14210

    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

    图片横向等高瀑布,每行占满,限制行数 的实现

    图片的横向瀑布,其实简单地按顺序排列就可以了 但要实现每行中各图片都等高(各行不一定等高,但每行里面等高),且每行都占满,就需要用到flex的特性了 控制每行图片高度都一致,可能会影响图片的比例,所以不能简单暴力地设置高度...,第一行仅可以放置四张图片,剩余100px的空间,那么各图片的flex-grow可以直接配置成图片的宽度width值,即可很方便精准地分配好这剩余的空间 第二行可以放五张图片,剩余N px的空间......容器宽度 == 图片宽度 所以  图片高度 == 图片宽度 * paddingTop % width值的计算可能比较绕 假设这里 width直接取 图片宽度w值,就会出现一行中图片高度不一致的情况 因为最终的图片高度即为容器的高度...图片宽度的不同,就直接导致了最终高度的不同 所以,为了确保图片高度一致,假设有三张图片 50*50  100*100  50*150  放在了同一行中,flex布局会将三张图片所在容器的高度自适应为最高的那个...那么最终三张图片的高度都应该为150,按照各自的图片比例来调整,则最终第一张图片宽度的计算  50 / 50 === width / 150 , 则 width = 50 / 50 * 150 可能有些行最高的图片还是不够高

    2K60

    vue实现网络图片瀑布 + 下拉刷新 + 上拉加载更多

    一、思路分析和效果图   用vue来实现一个瀑布效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果。...然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果; 选择哪种方式实现瀑布,这里选择绝对定位方式; 关键问题:由于每张图片的宽高不一样,而瀑布中要求所有图片的宽度一致,高度随宽度等比缩放...而且由于图片的加载是异步延迟。在不知道图片高度的情况下,每个图片所在的item盒子不好绝对定位。因此在渲染页面前先获取所有图片的高度,是解决问题的关键点!...这里选择用JS中的Image类,通过预加载图片的方式提前获取图片宽高,另外通过一个临时变量来计算是否所有图片的高度已经得到。当所有的图片高度获取后,开始渲染页面。...另外就是在页面渲染时,会出现页面闪烁的现象,后面使用了一个css动画处理了这个现象,效果好了很多。但是在第一次加载的时候,还是有轻微的闪烁现象。等后面找到更好的方法,再更新。

    3.1K10
    领券