首页 > 编程 > JavaScript > 正文

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

2019-11-19 14:37:06
字体:
来源:转载
供稿:网友

本文主要介绍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) { }     // 加载图片失败后的回调函数(默认:不执行任何操作)  });});

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表