欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

图片懒加载imgLazyLoading.js使用详解

程序员文章站 2022-04-14 13:18:46
本文主要介绍web前端使用图片懒加载imglazyloading ,供大家参考,具体内容如下 1、html代码 //懒加载对象目标代码

本文主要介绍web前端使用图片懒加载imglazyloading ,供大家参考,具体内容如下

1、html代码

//懒加载对象目标代码
<img originalsrc="__public__/images/home/icon_pingtuan.png">
//引用本地js
<script src="__public__/js/imglazyloading.min.js"></script>
<script src="__public__/js/imglazyloading.js"></script>

2、js代码

imglazyloading.min.js

jquery.fn.extend({
  delayloading: function (a) {
    function g(d) {
      var b, c;
      if (a.container === undefined || a.container === window) {
        b = $(window).scrolltop();
        c = $(window).height() + $(window).scrolltop()
      } else {
        b = $(a.container).offset().top;
        c = $(a.container).offset().top + $(a.container).height()
      }
      return d.offset().top + d.height() + a.beforehand >= b && c >= d.offset().top - a.beforehand
    }

    function h(d) {
      var b, c;
      if (a.container === undefined || a.container === window) {
        b = $(window).scrollleft();
        c = $(window).width() + $(window).scrollleft()
      } else {
        b = $(a.container).offset().left;
        c = $(a.container).offset().left + $(a.container).width()
      }
      return d.offset().left + d.width() + a.beforehand >= b && c >= d.offset().left - a.beforehand
    }

    function f() {
      e.filter("img[" + a.imgsrcattr + "]").each(function (d, b) {
        if ($(b).attr(a.imgsrcattr) !== undefined && $(b).attr(a.imgsrcattr) !== null && $(b).attr(a.imgsrcattr) !== "" && g($(b)) && h($(b))) {
          var c = new image;
          c.onload = function () {
            $(b).attr("src", c.src);
            a.duration !== 0 && $(b).hide().fadein(a.duration);
            $(b).removeattr(a.imgsrcattr);
            a.success($(b))
          };
          c.onerror = function () {
            $(b).attr("src",
              a.errorimg);
            $(b).removeattr(a.imgsrcattr);
            a.error($(b))
          };
          c.src = $(b).attr(a.imgsrcattr)
        }
      })
    }

    a = jquery.extend({
      defaultimg: "",
      errorimg: "",
      imgsrcattr: "originalsrc",
      beforehand: 0,
      event: "scroll",
      duration: "normal",
      container: window,
      success: function () {
      },
      error: function () {
      }
    }, a || {});
    if (a.errorimg === undefined || a.errorimg === null || a.errorimg === "")a.errorimg = a.defaultimg;
    var e = $(this);
    if (e.attr("src") === undefined || e.attr("src") === null || e.attr("src") === "")e.attr("src", a.defaultimg);
    f();
    $(a.container).bind(a.event, function () {
      f()
    })
  }
});

imglazyloading.js

$(function () {
  $("img").delayloading({
    //defaultimg: "__public__/images/img/loading.gif",      // 预加载前显示的图片
    errorimg: "",            // 读取图片错误时替换图片(默认:与defaultimg一样)
    imgsrcattr: "originalsrc",      // 记录图片路径的属性(默认:originalsrc,页面img的src属性也要替换为originalsrc)
    beforehand: 0,            // 预先提前多少像素加载图片(默认:0)
    event: "scroll",           // 触发加载图片事件(默认:scroll)
    duration: "normal",         // 三种预定淡出(入)速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000),默认:"normal"
    container: window,          // 对象加载的位置容器(默认:window)
    success: function (imgobj) { },   // 加载图片成功后的回调函数(默认:不执行任何操作)
    error: function (imgobj) { }     // 加载图片失败后的回调函数(默认:不执行任何操作)
  });
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。