图片懒加载即先加载一张较模糊的,体积较小的图片,等到滚动显示到该图片时替换为高清图片。
简易版本:

// lazyload.js/*   method: lazyload图片懒加载  params: 图片类名,自定义标签名(值为待替换图片地址)*/(function(global, factory) {  return factory.call(global, global.jQuery)})(this, function($) {  $.extend({    lazyload: function (imgClass, userAttr) {      return function () {        if (!imgClass || !userAttr) {          console.error('请传入图片类名和自定义标签名')          return        }        var $imgs = $('.' + imgClass)        var height = $(window).height() + $(window).scrollTop()        for (var i = 0; i < $imgs.length; i++) {          var $img = $($imgs[i])          var top = $img.offset().top          if (top <= height) {            var newurl =$img.attr(userAttr)            if (newurl) {              $img.attr('src', newurl)            } else {              console.error('请在自定义标签上绑定新的图片url')            }          }        }      }    }  })})

使用:timg1.jpeg为清晰度低的图片,img_url为自定义标签,值为清晰度高的图片地址

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title></head><style>  #box {    width: 500px;    height: 1000px;    border: 1px solid #ddd;  }  #box1 {    width: 500px;    height: 100px;    border: 1px solid #ddd;  }</style><body>  <div id="box"></div>  <img src="./timg1.jpeg" class="img" img_url="./timg2.jpeg">  <div id="box1"></div>  <img src="./timg1.jpeg" class="img" img_url="./timg2.jpeg"></body><script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js"></script><script src="./lazyload.js"></script><script>  $(document).ready(function () {    $(window).on('scroll', $.lazyload('img', 'img_url'))  })</script></html>