位置: 编程技术 - 正文

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

  • 无合同销售收入怎么算
  • 房屋租赁印花税怎么算
  • 初级会计计划成本法例题
  • 分期收款方式确认销售收入
  • 贴现的费用怎么入账
  • 短期借款属于经营性资产吗
  • 销售折扣和现金折扣的增值税
  • 结转应收票据是什么意思
  • 固定资产加速折旧税收优惠政策
  • 公司用股东的钱交税吗
  • 一台设备分期开票数量
  • 用于在建工程的贷款利息
  • 车间报销费用的会计分录
  • 房产一般纳税人每个月报哪些税
  • 现金折扣税前扣除
  • 个人转租房屋的法律规定
  • 企业法人股东向个人借款能起诉查封公司财产吗
  • 营改增后房地产开发税费一览表
  • 不能抵扣的进项税怎么做账
  • 货代发票税率是多少
  • 固定资产清查怎么开展
  • 认缴制下收到股东转入的钱怎么入账
  • 配件进出库账目怎么做
  • 项目的投入资金预算表
  • win7为什么现在不能用了
  • 小规模纳税人减半征收的六税两费
  • 企业购买银行理财
  • php命名空间和自由空间
  • 其他综合收益什么类科目
  • 一般纳税人的好处和坏处
  • 网络模型参数方法
  • php session_id
  • php access_token
  • 结转增值税的账务处理
  • 待摊费用和预提费用属于什么账户
  • 收缴违约金
  • 全年一次性奖金单独计税还是并入
  • 注册资金到位时间填多少年最好
  • 延迟开票如何规避风险
  • 培训费属于什么
  • 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法
  • MySQL提示The InnoDB feature is disabled需要开启InnoDB的解决方法
  • sql连接查询中AB
  • 附加税费怎么计算
  • 公司缴纳残保金的标准
  • 原始凭证审核要点包括
  • 普通发票冲红重开要多久
  • 文化传媒公司的主营业务
  • 注册资本转出可以吗
  • 居民企业与非居民企业的纳税差异
  • 事业单位残疾人就业保障金减免
  • SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)
  • 配置windows server 2008
  • centos6.9开启ssh服务
  • freebsd安装教程
  • win sth
  • 微软停止对xp的操作
  • mac取消开机启动项
  • win10 ie无法使用
  • mac终端好玩的命令
  • win8硬盘占用100%
  • centos安装软件教程
  • 家字取名男孩名字
  • 修改win10登录界面
  • linux怎么使用ssh命令
  • cocos2dx 3.17
  • cocos2dx游戏有哪些
  • Unity3D游戏开发引擎
  • shell切分
  • opengl glu
  • javascript编程技术
  • javascript学习指南
  • java 视频教程
  • 删除的照片怎么还原
  • 获取手机信息的渠道
  • 江西省国家税务局电子税务局
  • 个人所得税子女教育和赡养老人抵扣多少税
  • 湖北省税务局官网电话
  • 电子社保卡怎么添加家人
  • 消费税是单一环节征税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设