最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript实现瀑布流加载图片原理_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:50:31
文档

javascript实现瀑布流加载图片原理_javascript技巧

javascript实现瀑布流加载图片原理_javascript技巧:讲一下大概的原理吧,还是先上图: 功能描述: 根据不同菜单的属性值分别加载不同的数据 下拉滚动条到一定位置预加载图片,滚动条拉到最底下的时候渲染html; 鼠标移到菜单,切换各个图片列表; 鼠标移到图片列表上,显示详细信息; 技术实现方案
推荐度:
导读javascript实现瀑布流加载图片原理_javascript技巧:讲一下大概的原理吧,还是先上图: 功能描述: 根据不同菜单的属性值分别加载不同的数据 下拉滚动条到一定位置预加载图片,滚动条拉到最底下的时候渲染html; 鼠标移到菜单,切换各个图片列表; 鼠标移到图片列表上,显示详细信息; 技术实现方案
 讲一下大概的原理吧,还是先上图:

功能描述:

  • 根据不同菜单的属性值分别加载不同的数据
  • 下拉滚动条到一定位置预加载图片,滚动条拉到最底下的时候渲染html;
  • 鼠标移到菜单,切换各个图片列表;
  • 鼠标移到图片列表上,显示详细信息;
  • 技术实现方案:

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

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

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

    以下为全部代码:
    html:

    
    
    
    
    
    
    
    
     
     
     
     加载中...
     
     
    
    
    

    js:

    文档

    javascript实现瀑布流加载图片原理_javascript技巧

    javascript实现瀑布流加载图片原理_javascript技巧:讲一下大概的原理吧,还是先上图: 功能描述: 根据不同菜单的属性值分别加载不同的数据 下拉滚动条到一定位置预加载图片,滚动条拉到最底下的时候渲染html; 鼠标移到菜单,切换各个图片列表; 鼠标移到图片列表上,显示详细信息; 技术实现方案
    推荐度:
    标签: 图片 加载 原理
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top