位置: 编程技术 - 正文

纯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怎么做网页)

  • 如何修改纳税申报密码
  • 原材料报废可以退税吗
  • 出售股票税费处理投资收益在贷方
  • 计入税金及附加的科目
  • 京东公户的钱怎么转出来
  • 材料入库结转成本的会计分录怎么写
  • 增值税抵扣可以跨月吗
  • 调拨单可以根据哪些单据生成
  • 自然人合伙企业怎么交税
  • 自行研发无形资产暂时性差异
  • 支票结算的账务处理
  • 简易征收如何入账
  • 工资薪酬所得税税率
  • 事业单位收到增值税专用发票抵扣联怎么办
  • 个体户进货需要发票吗?
  • 融资租赁租金收入计税基础
  • 未办理土地使用证违反了什么法律
  • 哪些房产免纳房产税
  • 一般纳税人未达到起征点要交税吗
  • 教育培训机构涉税问题
  • 公司购买的汽车可以一次性扣除吗
  • 软件开发工资低
  • 技术合同的计税依据包括研究开发经费
  • windows10 怎么样
  • 计提工资时个税是计提上月的吗
  • 出口退免税的基本政策包括
  • 监事会职权范围是什么
  • ms-dos 6.0
  • 鸿蒙怎么添加
  • 360tray.exe损坏文件怎么修复
  • 测网速移动的方法是什么
  • 净资产收益率怎么求
  • 盆栽月季花怎么修剪图解
  • 成本结转的科目
  • 马德拉群岛旅游攻略
  • psd格式文档
  • vue2+element-plus 密码校验及动态校验
  • 企业所得税税金及附加包括
  • 工商年报经营现金净流量计算公式
  • 无限极分类mysql
  • 库存现金清零
  • web课程设计模板
  • 不得从销项税额中抵扣的是
  • 个人劳务费需交什么税种
  • 企业福利费超过预算收入
  • 小规模纳税人的企业所得税怎么算
  • 工程项目工资表
  • 金蝶迷你版年结账套
  • 修理费账务处理
  • sql server 2008 r2数据库备份
  • 生成100个[30-99]之内的随机数
  • 淘宝开店的钱怎么取出来
  • 公司会计日常工作内容
  • 小规模纳税人税率1%政策到什么时候
  • 为外单位人员报备流程
  • 收款预缴增值税怎么做账
  • 运输费用增值税税率9%
  • 冲回以前年度暂估入库
  • 小规模没交税有什么后果
  • 减免所得税优惠政策
  • 成本类科目借贷规则
  • mysql怎么实现
  • 如何重设路由器密码怎么办
  • linux updatedb
  • linux中管道
  • 安卓百分百
  • bootstrap内容
  • javascript内置对象应用团购
  • js获取父级元素
  • jquery cookie使用
  • unity find references in scene
  • mongodb python
  • jquery内容过滤选择器有哪些
  • 税控盘登录密码忘了怎么办怎么重置
  • 商业发票发票号怎么填写
  • 陕西省国家税务局
  • 容积率大于0.5 房产原值怎样算
  • 松原江北小吃一条街
  • 供给决定需求,需求影响供给
  • 个人所得税需要计提吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设