位置: 编程技术 - 正文

js实现瀑布流的三种方式比较(vue瀑布流实现)

编辑:rootadmin

推荐整理分享js实现瀑布流的三种方式比较(vue瀑布流实现),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js瀑布流布局,js实现瀑布流效果,瀑布流式页面布局代码,js实现瀑布流的实验报告,js实现瀑布流的实验报告,js实现瀑布流效果,js实现瀑布流的实验报告,js实现瀑布流的实验报告,内容如对您有帮助,希望把文章链接给更多的朋友!

瀑布流是一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内流行开来。国内大多数清新站基本为这类风格。

瀑布流特点:

1、琳琅满目:整版以图片为主,大小不一的图片按照一定的规律排列。2、唯美:图片的风格以唯美的图片为主。3、操作简单:在浏览网站的时候只需要轻轻滑动一下鼠标滚轮,一切的美妙的图片精彩便可呈现在你面前。

瀑布流布局实现方式:1、传统多列浮动

· 各列固定宽度,并且左浮动; · 一列中的数据块为一组,列中的每块依次排列; · 更多数据加载时,需要分别插入到不同的列中;

优点:

布局简单,应该说没啥特别的难点;

不用明确知道数据块高度,当数据块中有图片时,就不需要指定图片高度。

缺点:

列数固定,扩展不易,当浏览器窗口大小变化时,只能固定的x列,如果要添加一列,很难调整数据块的排列;

滚动加载更多数据时,还要指定插入到第几列中,还是不方便。

示例:

效果:

2、CSS3 样式定义

js实现瀑布流的三种方式比较(vue瀑布流实现)

优点:

直接 CSS 定义,最方便了;

扩展方便,直接往容器里添加内容即可。

缺点:

只有高级浏览器中才能使用;

还有一个缺点,他的数据块排列是从上到下排列到一定高度后,再把剩余元素依次添加到下一列,这个本质上就不一样了;

鉴于这两个主要缺点,注定了该方法只能局限于高端浏览器,而且,更适合于文字多栏排列。

示例

效果:

3、绝对定位 最优的一种方案,方便添加数据内容,窗口变化,列数/数据块都会自动调整;

优点: 方便添加数据内容,窗口变化,列数/数据块都会自动调整;

缺点:

需要实现知道数据块高度,如果其中包含图片,需要知道图片高度;

JS 动态计算数据块位置,当窗口缩放频繁,可能会狂耗性能。

思路:

1) 数据块排列(对容器中已有元素进行排列),算法步骤简述下:设置(块元素宽度一致)· 初始化时,对容器中已有数据块元素进行第一次计算,需要用户给定: a,容器元素 — 以此获取窗口总宽度; b,列宽度(块元素宽度); c,最小列数;·计算显示列数:窗口宽度除以一个块框宽度向下取整,并设置waterfall显示的居中·存储每列的高度· 获得列数后,需要保存每个列的当前高度,这样在添加每个数据块时,才知道起始高度是多少;· 依次取容器中的所有数据块,先寻找当前高度最小的某列,之后根据列序号,确定数据块的left,top值,left 为所在列的序号乘以列宽,top 为所在列的当前高度,最后更新所在列的当前高度加上这个数据块元素的高度,至此,插入一个元素结束;· 当所有元素插入完毕后,调整容器的高度为各列最大的高度值,结束依次调整。

2) 异步加载数据,包含两个步骤:· 绑定滚动事件,并确定预加载线高度值,即滚动到哪个高度后,需要去加载数据,其实这个就是列的最小高度值,这样当前滚动值和最小高度值比较一下即可判断出来,是否要触发加载数据;· 加载数据,函数传参,能提供加载数据函数和停止加载(加载多少时停止)函数,以更方便的控制。

标签: vue瀑布流实现

本文链接地址:https://www.jiuchutong.com/biancheng/385576.html 转载请保留说明!

上一篇:js运动应用实例解析(js做运算)

下一篇:原生JavaScript实现瀑布流布局(用原生js实现过什么功能)

  • 哪些产品享受教育优惠
  • 房地产开发企业土地增值税预缴
  • 计提所得税费用会计分录
  • 价税分离的公式是什么呀
  • 小规模计提增值税
  • 应收票据背书转让分录
  • 发票一年不能开超多少才不扣税费
  • 购进的库存商品转自用需要开发票吗
  • 买卖金融商品应交增值税计算
  • 纳税人从两处取得收入汇算清缴可以扣除2个60000吗
  • 建筑材料专票抵扣
  • 小规模纳税人标准2019
  • 商业房产出租和租赁区别
  • 企业授予员工股份的条件
  • 企业所得税的营业成本怎么算
  • 清算期间研发费用是否可以加计扣除附会计处理
  • 没收到发票可以做成本吗
  • 挂靠工程如何交纳税金帐务处理?
  • 非居民企业所得税
  • 支付收购股权款如何做账
  • 公司组织游玩员招聘
  • 个人交的工会经费个税
  • 利润表要怎么看
  • 建筑企业无票支出如何处理
  • 零申报的印花税怎么打印
  • 员工的水电费计入什么科目
  • 运费发票备注栏样板
  • 处理固定资产怎么计算
  • 客户支付货款时扣除了手续费
  • 银行交纳进口关税政策
  • 联通官网测网速
  • 外贸 代理
  • 没有营业执照哪个银行可以办理房产抵押贷款
  • 贷款资金取现就无法追查了吗
  • 提前支付的费用记账
  • php数组函数大全
  • php内容修改
  • PHP:set_file_buffer()的用法_Filesystem函数
  • 社会保险费缓缴政策
  • 多交税款的退还
  • 报错500是什么意思
  • 基于php技术
  • python解释器的多种使用
  • SQLITE3 使用总结
  • 社保工伤退回分录
  • 折现指标和非折现指标
  • 增值税扣税凭证不包括
  • 软件使用权计入什么科目
  • 企业应交税金科目编码
  • 无形资产摊销是当月增加当月摊销吗
  • Postgre数据库Insert 、Query性能优化详解
  • 本月应计提折旧额
  • 土增清算后再销售
  • 什么叫做公账对公账户
  • 退付现金什么意思
  • 试分析营改增的重大意义
  • 收到销售方负数发票可以次月入账吗
  • 销售货物收到托运怎么办
  • 租来设备本身原因致人损害
  • 全额工资和实发工资
  • 差旅费可以加计吗
  • 新成立的公司都是小微企业吗
  • 苹果电脑安装了双系统怎么恢复苹果系统
  • 电脑自带win8是装win7还是win10
  • Win7如何关闭Smartscreen筛选器?Win7关闭Smartscreen筛选器的方法
  • js 列表
  • nodejs入门教程
  • perl写文件
  • 控制角色一致性的5个方法
  • 下列关于android的说法中,错误的是
  • js声明集合
  • python socketcan
  • spring mvc jsp
  • android 引用第三方库
  • 税收和社保不在同一地缴纳怎么办
  • 陕西省国家税务局
  • 社保缴纳人数和公积金人数不一样怎么说明
  • 公路客运购票
  • 中国依靠房地产能发展多久
  • 建筑企业应如何选择适用的质量体系标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设