位置: 编程技术 - 正文

javascript实现瀑布流加载图片原理(js debounce实现)

编辑:rootadmin

推荐整理分享javascript实现瀑布流加载图片原理(js debounce实现),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript show,js实现promise.all,js debounce实现,js实现promise.all,js瀑布流布局,javascript ul,js实现瀑布流效果,js瀑布流效果代码,内容如对您有帮助,希望把文章链接给更多的朋友!

讲一下大概的原理吧,还是先上图:

功能描述:

根据不同菜单的属性值分别加载不同的数据 下拉滚动条到一定位置预加载图片,滚动条拉到最底下的时候渲染html; 鼠标移到菜单,切换各个图片列表; 鼠标移到图片列表上,显示详细信息; javascript实现瀑布流加载图片原理(js debounce实现)

技术实现方案:

  先梳理一下从加载到显示的流程:  1. 加载数据  2. 拼接HTML写入到页面  3. 检查刚刚写入的HTML中的img是否全部加载完成,如果是,进入5、否则进入4  4. 等待图片加载完成  5. 计算每个元素的位置

  一开始的时候最头疼的是如何定位的问题,后来经过朋友指导终于解决:计算总共有多少列图片并且把每一列的高度都放到一个数组里面。每当一张图片加载完成的时候就查找这个数组里面最小的值,并且定位当前图片的top设置为这个值,完成后把这个图片的高度加上数组里面的最小值并且返回到数组里面,依次类推。 PS:因为这个功能代码太多,只能作基本的简单分解代码了: 

 其次开发过程中遇到的难题是:因为如上图所示,鼠标移动到菜单栏需要切换图片列表,并且分别需要用瀑布流加载不同类型的数据。所以要处理在切换页面的时候如何才能做到每个页面只执行一次代码请求接口,而不需要每一次切换都重新请求数据接口,仅仅执行切换显示图片列表的操作就可以了。  考虑到每一个菜单都有一个自定义属性,所以这个问题轻易地解决了:建立一个对象来记录当前菜单是否已经执行过代码,如果没有就执行请求数据 。 

以下为全部代码:html:

js:

标签: js debounce实现

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

上一篇:Hammer.js+轮播原理实现简洁的滑屏功能(轮播怎么实现)

下一篇:JavaScript实现的SHA-1加密算法完整实例(js能实现的简单效果)

  • 待抵扣进项税额转入进项税额
  • 企业纳税信用等级评定标准
  • 累计折旧 计提折旧
  • 销项税额是开票金额么
  • 教育行业税收优势分析
  • 如何查询公司的财务负责人
  • 使用权资产计入资产负债表哪个科目
  • 定额发票上可以盖章吗
  • 所有者投入的普通股会计分录
  • 发生销售折让时为什么不冲减成本
  • 预付款项包括哪些项目
  • 汽车修理店业务范围
  • 佣金支出和手续费税前扣除相关政策依据及会计处理
  • 购进货物的价税怎么算
  • 软件开发的服务内容方式要求
  • 小规模 开增值税
  • 哪些费用税务局可以抵扣
  • 不动产证上宗地图名字错一个字
  • 土地房产税征收范围
  • 房地产土地增值税筹划
  • 现金日记账对方科目是什么意思
  • 2019附加税优惠政策
  • 公司向个人购买服务
  • 个体工商户申报流程图
  • 进项转出税务处理
  • 行政单位上年支出退回
  • php preg_quote
  • pddocument.load
  • 打印机疑难解答显示打印机问题
  • php获取useragent
  • 办理房屋租赁需要的材料
  • 红字发票冲减的是当月收入吗
  • 递延所得税资产借贷方向
  • php生成guid
  • 实缴资本多久可以取出随便用吗
  • 工程施工科目下的间接费用怎么使用
  • abap webservice
  • 其他业务成本如何结转
  • 提供劳务收入是指
  • mongodb 随机获取一条数据
  • 没进项发票开销项发票是可以吗?
  • 公司买口罩
  • 企业股权转让收入会计处理
  • 进口货物如何入账
  • 固定资产盘亏账务处理的问题
  • 汽车固定资产清理怎么交税
  • 以自营方式建造固定资产
  • 发票认证是为了什么
  • 现金流量表的编制基础是权责发生制
  • 新公司季初资产总额填什么
  • 记帐凭证会计处理程序及其应用
  • 会计账簿的作用之一是编报和输出会计信息
  • 记一次成功的喜悦作文
  • 安装win7系统后鼠标键盘不能用
  • centos操作命令
  • 预装win7系统
  • win7登录密码怎么改
  • macbookzen
  • dcs是什么文件
  • linux磁盘格式化后一定会清空数据吗
  • graphics.dll
  • win7安装flash提示连接失败
  • linux learn
  • python函数详解
  • node.js底层原理
  • vue中怎么引入css
  • java 同步方法和同步代码块区别
  • node cd
  • js调用css动画
  • ajax 分页
  • 1万4千块钱交多少个人所得税
  • 企业公示信息怎么查询
  • 安庆税务局窗口电话
  • 苏宁易购的联系电话
  • 贵阳北控水务电话客服电话
  • 湖北商铺契税2021年新规
  • 民办非营利医院所得税
  • 个人所得税申请专项扣除有什么用
  • 大修费属于什么费用
  • 在烟台如何发布招聘信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设