位置: 编程技术 - 正文

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

  • 递延所得税负债账务处理
  • 金蝶kis专业版的优缺点
  • 商誉是减值还是摊销
  • 如何证明自己是低保户
  • 个人银行帐户可查询多少年
  • 对公账户转个人账户
  • 在建工程无发票怎么说明原因
  • 包装成本为产品的百分比
  • 国有资产如何保值
  • 服装厂里面
  • 专项补助资金补助的领域包括
  • 企业购买硬件与软件该如何做账?
  • 红字记账的四种登记方式
  • 劳务派遣公司会扣工资吗
  • 事业单位去年的岗位今年还会招吗
  • 施工单位临时设施的搭建费属于
  • 一般纳税人附加税费减免政策
  • 事业单位坏账怎么处理
  • 应用程序无法正常启动(0xc0000142)
  • 合伙企业合伙人工资的账务处理
  • 蓝屏代码0xc000000f
  • 无形资产如何评估作价
  • 个体户税务申报需要什么资料和手续
  • vue移动端预览pdf
  • 保险公司工伤保险
  • win11系统设置快捷键
  • 废旧物资处理计入什么科目
  • 最保值的ipad
  • 神舟战神k670c-g4e1游戏笔记本怎么样?
  • 废料收入的成本怎么核算
  • php实现简单的登录验证
  • 待摊费用和预付账款的区别是什么
  • 对公贷款利息支付
  • android常用的集成开发工具有
  • 个人开发app最简单方法
  • php解析json对象
  • 大前端技术
  • 设备租赁经营部经营范围
  • 固定资产暂停使用期间需要计提折旧吗
  • java线程的执行体
  • mysql查询表清单
  • 新成立的公司企业所得税
  • 个税申报错误已经扣税款怎么处理
  • 小规模纳税人申报增值税的操作流程
  • 未分配利润转增股本 企业所得税
  • 小规模纳税人固定资产原值含税吗
  • 主办会计的工作内容和职责
  • 以前年度税费减免税
  • 费用少计提了怎么办
  • 利得和损失计入所有者权益的情况
  • 质量管理体系认证证书
  • 计提了坏账准备就要计算递延所得税资产
  • 总公司委托分公司开票及收款
  • 企业利润的构成内容
  • 质量有问题不给退怎么办
  • 酒店会计科目表
  • 委托加工的成本如何核算
  • win7快速切换到桌面
  • u盘装系统步骤delt进入界面怎么选择
  • win10预览版选哪个
  • centos named
  • centos6.5忘记密码
  • ssh远程登录设置
  • linux系统设置网络
  • Particle system study section 1
  • python制作数字拼图
  • cocos2dx 3.3 helloworld 入门 学习与详解
  • 微信开发微信开发
  • 显示某两个字符的函数
  • thread python
  • vue自定义组件v-html
  • vue gallery
  • python如何处理文本
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • android的控件有哪些
  • 江苏税务查询电子发票
  • 消费税的纳税义务的发生时间是如何规定的
  • 广东电子税务局官网登录入口手机版
  • 增值税税负标准是什么
  • 消费发票上的金额含税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设