位置: 编程技术 - 正文

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能实现的简单效果)

  • 买房契税缴纳比例
  • 小规模纳税人企业所得税2023
  • 事业单位补提折旧怎么处理
  • 进口货物再出口 增值税处理
  • 加计抵减附加税怎么做账务处理
  • 个人所得税专项扣除子女教育标准
  • 库存商品赠送给客户要开票吗
  • 金融企业贷款损失准备金税前扣除计算
  • 无形资产研发费用加计扣除是晢时差异吗
  • 公司债券投资的优缺点
  • 汇款后又退回来是什么原因
  • 当月确认收入下年怎么算
  • 支付购买机器的价款
  • 质量保证产品一般是指
  • 新产品开发费用怎么扣除
  • 预提费用入账依据
  • 供应商采购额变动原因有哪些
  • 已过认证周期什么意思
  • 应收账款产生的利息分录
  • 信用证保证金会退还吗
  • 工厂院子里的地图怎么画
  • 海关进口增值税专用缴款书
  • 如何加快身体的新陈代谢
  • php23种设计模式
  • 公司现金用途
  • hp是什么代码
  • 公司转让自建厂房怎么办
  • PHP:pg_escape_literal()的用法_PostgreSQL函数
  • 外币交易犯法吗
  • php使用redis缓存技术
  • 年终奖并入综合所得
  • php与java区别
  • vue0
  • ChatGPT强化学习大杀器——近端策略优化(PPO)
  • css中清除浮动
  • 2023跨年代码大全可复制免费
  • 卷积拆分
  • service iptables save
  • 红字发票账务处理
  • python如何设置窗口背景色
  • 未记账凭证怎么变成已记账凭证
  • 金融资产减值迹象
  • php发邮件系统源码
  • 软件研发主要研发啥软件
  • 开具红字增值税普通发票
  • 企业所得税预缴申报表
  • 电子发票可以作为保修凭证吗
  • 工资能否当月计提当月发放
  • 过次页是本页合计吗
  • 黄金以旧换新是不是不划算
  • 融资手续费计入长期待摊
  • mac开机声音怎么取消
  • 如何配置samba配置文件
  • WIN10如何设置电脑自动锁屏
  • win10预览版21277
  • windows7网络和internet设置
  • win8操作系统安装
  • mac的dock栏怎么设置
  • centos怎么打开软件
  • pln是什么文件
  • win10怎么查看磁盘是固态还是机械
  • window10自动维护功能有什么用
  • 飞行歌曲
  • Formatting Long Lines 格式化多行字符的shell脚本
  • python图像移动
  • python接入微信
  • 安卓deprecated
  • css美化表单 案例
  • pycharm打开文件怎么运行
  • python视频下载
  • webpack配置文件在哪
  • JavaScript中Textarea滚动条不能拖动的解决方法
  • python代码规范化
  • 银行人员司法查询给查错了,怎么办
  • 税控发票开票软件密码怎么修改?
  • 重庆水费怎么交费
  • 小区配电房移交供电局的依据
  • 红色通知字体
  • 服务类发票 如何入账
  • 2021年社保又涨价了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设