JavaScript

超轻量级php框架startmvc

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

更新时间:2020-06-22 06:30:01 作者:startmvc
本文主要介绍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) { } // 加载图片失败后的回调函数(默认:不执行任何操作)
 });
});

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

图片懒加载 imgLazyLoading.js imgLazyLoading