• 技术文章 >web前端 >js教程

    图片懒加载imgLazyLoading.js

    亚连亚连2018-06-14 14:56:09原创656
    这篇文章主要为大家详细介绍了图片懒加载imgLazyLoading.js的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    vue-cli配置文件(详细教程)

    使用jQuery封装animate.css(详细教程)

    在vuex中如何实现闲置状态进行重置

    以上就是图片懒加载imgLazyLoading.js的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:使用async、enterproxy如何控制并发数量 下一篇:Vue.js+Flask做出手机App
    大前端线上培训班

    相关文章推荐

    • javascript怎么将字符转换成数字• javascript es6数组方法有哪些• javascript怎么将float转为int类型• javascript怎么设置p的值• javascript如何获取当前方法名

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网