美文网首页前端
图片懒加载的实现原理

图片懒加载的实现原理

作者: 5吖 | 来源:发表于2018-12-27 11:17 被阅读0次

一、定义

当打开一个有很多图片的页面时,先只加载页面上看到的图片,等滚动到页面下面时,再加载所需的图片。这就是图片懒加载。

二、作用

减少或延迟请求数,缓解浏览器的压力,增强用户体验。

三、实现方式

1、设置图片src属性为同一张图片,同时自定义一个data-src属性来存储图片的真实地址
2、 页面初始化显示的时候或者浏览器发生滚动的时候判断图片是否在视野中
3、 当图片在视野中时,通过js自动改变该区域的图片的src属性为真实地址

四、代码部分

1、html 部分
  <div class="container">
    <img src="http://smashinghub.com/wp-content/uploads/2014/08/cool-loading-animated-gif-3.gif" alt="1" data-src="http://cdn.jirengu.com/book.jirengu.com/img/1.jpg">
   .
   .
   .
    <img src="http://smashinghub.com/wp-content/uploads/2014/08/cool-loading-animated-gif-3.gif" alt="20" data-src="http://cdn.jirengu.com/book.jirengu.com/img/20.jpg">
  </div>
<style>
.container {
      max-width: 800px;
      margin: 0 auto;
    }
    .container:after{
      content: '';
      display: block;
      clear: both;
    }
    .container img {
      float: left;
      width: 50%;
    }
    h1{
      clear: both;
    } 
/*注:img都是浮动,如果不清除浮动,h1的值高度就相当于container里面最高的,不是实际的数值*/
</style>
2、js 部分
  <script>
    start() // 一开始没有滚动,也需要触发一次 

    $(window).on('scroll', function(){// 滚动时,显示对应图片
      start()
    })

    function start(){
      $('.container img').not('[data-isLoaded]').each(function(){
        var $node = $(this)
        if( isShow($node) ){
          loadImg($node)
        }
      })
    }

    function isShow($node){ // 判断图片是否在视野中
      return $node.offset().top <= $(window).height() + $(window).scrollTop()
    }

    function loadImg($img){ 
      $img.attr('src', $img.attr('data-src'))
      $img.attr('data-isLoaded', 1) // 区别图片是否被加载过,防止重新加载
    }

demo 地址 http://js.jirengu.com/setezusife/1/edit?html,output

相关文章

  • 懒加载和瀑布流

    一、简述图片懒加载的实现原理 图片懒加载 若一开始,页面上有许多的图片要加载,而如果同时加载这么多图片,会消耗性能...

  • 图片的懒加载和预加载

    懒加载:又称延迟加载,需要等到某个情况下才加载,相对可以缓解服务器压力。 实现原理:以懒加载图片为例,当加载图片较...

  • 图片懒加载的使用方法?

    图片懒加载 图片懒加载实现原理: 可以图片src配置一个假的地址,同事给添加一个data-url属性指向真是url...

  • 项目优化

    图片懒加载,数据懒加载, 路由懒加载 1.图片懒加载原理 1.1 开始时 不设置src属性 1.2 图片在可视区域...

  • 图片懒加载——实现原理

    一、定义 当打开一个有很多图片的页面时,先只加载页面上看到的图片,等滚动到页面下面时,再加载所需的图片。这就是图片...

  • 图片懒加载的实现原理

    这篇文章介绍一下图片懒加载的原理 图片懒加载: 顾名思义-简单说就是当你浏览一个图片页面时,窗口上会先展示图片,此...

  • 图片懒加载的实现原理

    一、定义 当打开一个有很多图片的页面时,先只加载页面上看到的图片,等滚动到页面下面时,再加载所需的图片。这就是图片...

  • 懒加载

    图片懒加载 实现原理 原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img...

  • 懒加载与瀑布流布局

    懒加载 一、懒加载的实现原理 由于过多的图片会严重影响网页的加载速度,并且移动网络下的流量消耗巨大,所以说延迟加载...

  • 图片懒加载和预加载

    图片懒加载的原理是什么? 首先明白为什么要懒加载: 懒加载即延迟,对于图片过多的页面,为了加快页面加载速度,我们需...

网友评论

    本文标题:图片懒加载的实现原理

    本文链接:https://www.haomeiwen.com/subject/fgdllqtx.html