图片懒加载

简介: 图片懒加载

如果你只读每个人都在读的书,你也只能想到每个人都能想到的事。——村上春树

首先贴代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
      .ruben {
        width: 400px;
        height: 300px;
        background-color: #e8e8e8
      }
      .ruben img {
        width: 100%;
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3059_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3058_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3057_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3055_3.jpg"></div>
    <div class="ruben"><img src="https://VampireAchao.gitee.io/imgs/preview/3056_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3054_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3053_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3052_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3051_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3050_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3049_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3048_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3047_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3046_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3045_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3044_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3043_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3042_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3041_3.jpg"></div>
    <div class="ruben"><img data-src="https://VampireAchao.gitee.io/imgs/preview/3040_3.jpg"></div>
    <script type="text/javascript">
      // 获取需要懒加载的元素
      let lazyLoadImgs = document.querySelectorAll("img")
      function lazyLoad() {
        // 屏幕可视区域高度
        let clientHeight = document.documentElement.clientHeight
        // 遍历图片
        lazyLoadImgs.forEach(e => {
          if (!e.src) {
            // 获取元素界面信息(宽高位置等)
            let rect = e.getBoundingClientRect()
            if (rect.top < clientHeight) {
              // 如果当前图片处于可视区域,则将data-src中的值放入src
              e.src = e.dataset.src
            }
          }
        })
        // 滚动时加载
        window.onscroll ??= lazyLoad
      }
      lazyLoad()
    </script>
  </body>
</html>


在你们自己的代码中使用方式也很简单:

首先复制这串js

// 获取需要懒加载的元素
let lazyLoadImgs = document.querySelectorAll("img")
function lazyLoad() {
  // 屏幕可视区域高度
  let clientHeight = document.documentElement.clientHeight
  // 遍历图片
  lazyLoadImgs.forEach(e => {
    if (!e.src) {
      // 获取元素界面信息(宽高位置等)
      let rect = e.getBoundingClientRect()
      if (rect.top < clientHeight) {
        // 如果当前图片处于可视区域,则将data-src中的值放入src
        e.src = e.dataset.src
      }
    }
  })
  // 滚动时加载
  window.onscroll ??= lazyLoad
}
lazyLoad()

然后在你们页面中使用,这里需要将你们原来页面上img标签的src改为data-src,这样在元素处于可视区域,则将data-src中的值放入src,然后达到懒加载的效果

相关文章
|
3月前
|
JavaScript
懒加载图片案例
懒加载图片案例
|
6月前
|
存储 前端开发 JavaScript
前端实现图片的懒加载
前端实现图片的懒加载
40 0
|
4月前
|
存储
图片懒加载(二)
图片懒加载(二)
20 1
|
10月前
|
JavaScript API
图片懒加载
图片懒加载
61 0
懒加载只能对图片进行懒加载吗?
懒加载只能对图片进行懒加载吗?
|
JavaScript 前端开发 UED
实现图片懒加载(及优化相关)
工作之余想要休闲一下(看-美-女-图),但是又觉得单纯休闲不利于自身进步,于是 ……
实现图片懒加载(及优化相关)
|
JavaScript UED
实现图片懒加载
实现图片懒加载
|
JavaScript
jquery插件-图片懒加载-53
jquery插件-图片懒加载-53
71 0
jquery插件-图片懒加载-53