位置: 编程技术 - 正文

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

  • 资金账簿印花税减半征收后可以叠加享受优惠吗
  • 房东口头答应减免房租又反悔了
  • 代建费用在哪里列支
  • 向银行借款存入银行会引起
  • 个税申报月份错了怎么改
  • 个人所得税纳税义务人
  • 出口退税网上服务中心app
  • 员工个人承担的保险分录
  • 忘记先抄税再申报了怎么办
  • 增值税出口免退什么意思
  • 取得成本发票
  • 收入跨期审计调整分录如何滚调
  • 事业单位发生管理费用
  • 房地产开发企业会计科目
  • 税金是否可以不计提呢?
  • 税收滞纳金算不算营业利润
  • 误餐补助需要发票做账吗
  • 小规模季度超过30万,普票咋交税
  • 关联关系的判定标准
  • 减少注册资本金程序
  • 酒精是否属于消费税征税范围
  • 华为手机屏幕变成黑白怎么调回来
  • 注册的注释
  • 专项扣除项目有上限吗
  • 生产企业提供售后服务
  • 房屋租赁合同变更
  • 苹果手机查找对方手机位置看不到
  • php字符串定义的三种方式
  • vcpkgsrv.exe是什么进程
  • PHP:Memcached::deleteByKey()的用法_Memcached类
  • 工作组只能看到自己
  • 进程查看工具
  • 出国考察是什么意思
  • vue获取input
  • 1558伊丽莎白女王
  • 除湿器属于固定资产什么类别
  • php遍历结果集
  • js数组常用方法有哪几种
  • 关于眼中的世界的作文
  • Apache PHP MySql安装配置图文教程
  • 企业利润分配的通常去向包括
  • 费用化支出需要摊销吗
  • 代开运输发票是否会引起双重征税?
  • 施工现场补助规定
  • 上月结余金额是什么的
  • 固定资产投资额怎么计算
  • 发票有种类型
  • 个人的车由公司来投保可以吗
  • 个人名义开工程发票税率是多少
  • 教育费附加和地方教育费附加都要交吗
  • 仓库发货打包员工作内容
  • 新政府会计下专业学什么
  • 打官司产生的费用开成什么发票
  • 打印的机票行程单怎么看
  • 哪些商业保险可以抵扣个税
  • 新成立公司季初资产总额是填1
  • access数据类型是什么
  • solaris教程
  • win10硬盘安装器安装教程
  • freebsd怎么安装软件
  • vcdcontroltool
  • win7怎么添加自启动程序
  • win8玩英雄联盟fps低怎么办
  • linux的head命令
  • centos5.4 安装
  • 怎么调整桌面图标间距
  • win7系统桌面设置
  • win10 sp3
  • mac 10.8.5升级
  • 一打字就出现windows设置
  • 安装samba服务器步骤
  • c#程序代码大全
  • linux怎样过滤一个关键字
  • 彻底弄懂js中的this指向
  • css浮动和清除浮动
  • macos 升级python
  • android回调函数
  • 陕西税务管网
  • 因公出差伙食补助标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设