位置: 编程技术 - 正文

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

  • 加工企业税收优惠政策
  • 小规模纳税人500万以内免税
  • 收取违约金是否交税
  • 企业所得税减免优惠政策
  • 个人劳务报酬所得税率表
  • 出口支付给境外的佣金
  • 材料暂估入库的摘要怎么写
  • 一般纳税人结转销售成本怎么算
  • 为什么应交增值税记在借方
  • 长期利润分享计划属于短期薪酬吗
  • 开具银行资信证明
  • 员工内部跑步活动费用怎么做分录?
  • 小型微利企业减按25%计算应纳税所得额
  • 股东出资不做股本做借款该怎么写分录?
  • 福利费的发票可以开什么内容
  • 免税和不征税货一样吗
  • 计提印花税会计分录怎么写
  • 中央下拨党费
  • 净资产利润率多少算好
  • 资金占用利息怎么开票
  • 企业筹建期间可以自己发农民工工资么
  • mac怎么彻底删除一个软件
  • 收到押金缴国库费怎么办
  • windows无法验证此设备数字签名
  • 食品类发票入账属于什么科目
  • 意外保险费是什么意思
  • 拍到国际空间站过境
  • 聘用退休人员的法律风险
  • 对外支付代扣代缴附加税享受减免吗
  • 100行php代码实现加密端口转发
  • PHP中empty,isset,is_null用法和区别
  • h5链接js
  • vue动态组件component原理
  • php页面跳转方法
  • it云化
  • vue computed set get
  • typescript和javascript那个更高级
  • 协议、合同
  • 商贸公司会计成本核算
  • 企业接受捐赠怎么入账
  • 电子发票找不到了可以找回吗
  • 一般计税和简易计税可以合并征税吗
  • 房产税的征收范围和标准有哪些
  • 小卖部铺货首次送货流程
  • 专票不抵扣认证怎么操作
  • 预收账款是什么要素
  • 出口退税指的是什么意思
  • 印花税根据不同的税目,分别采用
  • 加计扣除所得税怎么算
  • 银行利息收入怎么计算
  • 企业验资的好处
  • 发现以前年度假期不满
  • 购买苗木怎么做政府会计分录
  • 摊销费用如何做账
  • 个人为什么不能购买永续债
  • 发票认证是为了什么
  • 电子口岸登录显示证书错误
  • mysql的日志
  • 分页存储过程包括
  • 火狐firefox浏览器华为
  • 在windows 7
  • ubuntu nginx webdav
  • mac如何开启屏幕录制权限
  • explore.exe是什么意思
  • 在windows xp的应用程序中,经常有一些
  • Linux内核级别的资源隔离机制是
  • win8用户账户控制如何解除
  • Win10专业版21h2
  • win10用户账户guest
  • node.js使用教程
  • python模拟登录爬取数据
  • nodejs制作网站
  • js setTimeout opener的用法示例详解
  • linux常用命令及实例
  • java分布式计算
  • python 命令
  • python 设计
  • jquery基本知识
  • 住房货币化什么意思
  • 纳税信用评级b是多少分
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设