位置: 编程技术 - 正文

纯js实现瀑布流布局及ajax动态新增数据(vue 瀑布流)

编辑:rootadmin

推荐整理分享纯js实现瀑布流布局及ajax动态新增数据(vue 瀑布流),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端实现瀑布流,js实现瀑布流效果,js实现瀑布流效果,css瀑布流效果代码,html 瀑布流,js实现瀑布流效果,html 瀑布流,jquery瀑布流代码,内容如对您有帮助,希望把文章链接给更多的朋友!

本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能。

缺点:

1. 程序不是响应式,不能实时调整页面宽度;

2. 程序中当新增ajax模拟数据图片后,是将整个页面的所有图片都重新定位一次。

3. 程序是等所有图片加载完成后再读取图片的尺寸,实际中肯定不能这样做。

4. 实际项目中,应该由后台程序给出图片尺寸值,在js代码中直接使用图片的width属性。

本程序思路:

html结构:

一、初始化布局

1. 设置#container为position:relative;

2. 设置.box为float:left;

3. 网页加载后对所有图片进行定位;

  3.1 图片宽度是固定的,计算出当前页面每行能容纳的图片数num,并得出#container的宽度,然后设置页面居中;

  3.2 循环遍历所有图片,前num个图片默认float布局作为第一行,并存入数组BoxHeightArr = [];

  3.3 第一行布局完成后,排布下一个图片,并更新BoxHeightArr[]:

纯js实现瀑布流布局及ajax动态新增数据(vue 瀑布流)

    3.3.1 将下一个图片放到第一行最矮图片的下方(用position:absolute定位),也就是BoxHeightArr[]中高度最小的那一列,记录下列数的索引值:minIndex;

    3.3.2 更新BoxHeightArr[]中最小的那个值(BoxHeightArr[minIndex]+当前图片的高度);

  3.4 重复循环3.3步骤,直到所有图片都排布完成

二、实时监测滚动高度,是否要加载新数据

1.初始化完成后得到最后一个图片距离顶部的高度: lastContentHeight

2.用window.onscroll = function(){...}

  实时监测当前页面的滚动高度为:scrollTop

  实时监测当前页面视窗高度为:pageHeight

3. 当页面监测到:lastContentHeight < scrollTop + pageHeight 时,用ajax获取新增图片的json数据。

三、页面底部新增内容

1. 用一个循环,先创建一个新的图片容器,添加到底部,然后将json数据中相应的图片数据如路径等信息写入该容器完成添加图片。

2. 所有新增图片添加完成后,对整个页面的所有图片及布局重新执行步骤一的初始化操作。

项目文件夹:

index.html: 预先置入部分图片数据

style.css:

app.js:

效果图:

标签: vue 瀑布流

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

上一篇:原生JavaScript实现Ajax的方法(原生javascript开发)

下一篇:JS实现的网页上的颜色拾色器(js怎么做网页)

  • 一般纳税人销售旧货
  • 大盛房地产中介公司
  • 租赁设备损毁赔偿案例
  • 购入生产线属于什么费用
  • 通过固定资产科目核算
  • 利息税减少
  • 销项负数发票怎么做账
  • 跟个人租车可以到税务局开发票吗
  • 索赔费用项目
  • 机票抵进项税税率
  • 小规模纳税人购车好处
  • 其他应收款有什么业务
  • 奖品偶然所得个税如何申报
  • 变更法人流程具体流程图
  • 委托加工农产品的扣除率
  • 收到政府中小企业发票
  • 贷款的印花税税率
  • 证券清算款是什么科目
  • 建筑公司亏损异常怎么办
  • 分公司有法律效力吗
  • 销项负数盖章吗
  • 陈列费表格
  • 营改增的作用
  • 一般纳税人简易征收范围
  • 稿酬所得的个税计算
  • 4s店付款
  • 公司销售商品怎么做分录
  • 小规模纳税人亏损要交税吗
  • 分公司向总公司转钱可以吗
  • 充值至他人支付账户
  • 三星笔记使用攻略
  • 公司与个人的往来款怎么处理
  • pos机未入账怎么回事
  • Javascript Object和Map之间的转换
  • 金融机构同业外汇存款账户管理办法
  • vue的样式穿透
  • 票据贴现税务处理
  • username命令
  • 帝国cms怎么用
  • 在发生以下的情况下,可判定货物
  • opengl 帧率
  • 什么情况印花税
  • 待抵扣进项税额是什么情况下用的
  • 小规模纳税人财务报表是按季还是按月申报
  • 想要上海名媛群群号
  • 非房地产企业转让建筑物,计提土地增值税时应借记
  • 生产工人工资属于生产过程中发生的费用吗
  • SqlServer 2005 T-SQL Query 学习笔记(1)
  • 纳税人企业本月纳税额
  • 不征税收入怎么做会计分录
  • 包装物租金如何界定
  • 现金短缺与溢余解析
  • 无形资产摊销如何操作
  • 初始数据都录入什么意思
  • 非公司员工机票能报销吗
  • 采用成本法核算的长期股权投资
  • 如果对装修费用有异议怎么办
  • 所有者权益科目有哪些
  • 上月留抵税怎么算应纳税额
  • 专用发票不抵扣要认证吗
  • 会计凭证传递的组织工作主要包括
  • 建账需要买哪些会计用品
  • java如何连接sql
  • 苹果电脑怎么锁文件夹
  • soffice.exe - soffice进程是什么意思 有什么用
  • ubuntu系统如何设置永不休眠
  • 三分钟教你学会骑女式摩托车,连菜鸟都能学会
  • Win7系统电脑开不开机怎么办
  • margin负值
  • cocos2djs
  • unity 加载文件 卡顿
  • 导演都有什么分类
  • python list set dict tuple
  • javascript总结笔记
  • jQuery使用getJSON方法获取json数据完整示例
  • 学习jQuey中的return false
  • 江苏省增值税专用发票怎么开
  • 福建省国税局
  • 房屋维修是什么职业
  • 内蒙古国家税务总局电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设