位置: 编程技术 - 正文

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

  • 通过物流中心再送货配货属视同销售吗
  • 未到期责任准备金24分法详解
  • 期间费用的控制方法主要有
  • 被投资企业减资怎么做账
  • 财务报表与汇算报表区别
  • 当月用专票是增版还是增量
  • 虚开增值税专用发票罪判决书
  • 专项资金如何做账务处理
  • 出口报关和不报关的区别
  • 如何正确核算出租房屋所应交的房产税?
  • 政府补助专项资金账务处理
  • 税务局不备案可以吗
  • 对公账户资金往来会产生税吗
  • 以前年度费用如何列支
  • 增值税增量留抵退税政策解读
  • 结转本期损益要过账吗
  • 一般纳税人存货入账价值
  • macbook视频怎么用
  • php计算时间
  • 外贸公司付款方式有几种
  • 进货折扣是怎么计算
  • 摊销房租怎么做账
  • 小型企业的资产负债表
  • 无形资产处置计入哪里
  • PHP:cal_days_in_month()的用法_日历函数
  • PHP:mcrypt_module_close()的用法_Mcrypt函数
  • 会计不忙
  • 工资一定要对公发吗
  • 元宇宙与nft
  • gdal官方文档
  • php读取文件内容的方法和函数
  • 公司在银行买的理财产品怎么做账
  • 加班补贴费
  • java阻塞队列线程安全吗
  • mongodb aggregate count
  • 库存不多
  • 软件企业该怎么发展起来
  • sqlserver 数据迁移
  • 职工教育经费可以冲回吗
  • 国债利息属于免税吗
  • 汇算清缴是不是一定要做
  • 公司章程在工商局盖章需要什么
  • 行政划拨的土地有使用年限吗
  • 个体工商户不经营需要税务登记吗
  • 固定资产的计提折旧方法有哪些
  • 银行贴息一般多久能到账
  • 已认证抵扣的发票如何做账
  • 房地产成本的概念
  • 私车公用涉及的税种有哪些
  • 技术研发费用是什么意思
  • 服务咨询类合同
  • 企业对私账户合法吗
  • 税控系统全额抵扣
  • 将备份的mdp文件导入数据库
  • mysql字段什么意思
  • windows10的xbox如何录制视频
  • macos 修改mac
  • 一台OpenSuSE系统的服务器的网络配置
  • mac的虚拟机
  • Win8系统筛选器Smartscreen阻止恶意程序运行
  • ubuntu16.04火狐打不开网页
  • linux防火墙设置firewalld
  • windows10专业版界面预览
  • [置顶]电影名字《收件人不详》
  • android yield
  • 用简洁的语言推荐一本书
  • cocos2dx lua在sublime下的插件安装及查看定义
  • opengl矩形
  • shell字符串操作命令
  • 用注册表更改用户名后无法登陆
  • 京东试用js脚本
  • nodejs实战教程
  • js插件大全
  • 22号天蝎座的运势
  • unity角色扮演游戏
  • python utils模块
  • jquery写网页
  • 深圳前海地铁站几号线
  • 上海房屋出租交税
  • 个体商户营业额多少万以下免税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设