jQuery插件imgLazyLoading图片懒加载使用详解
作者:百宝袋时间:2026-10-22 11:26:19浏览:536
本文详细介绍基于jQuery的图片懒加载插件imgLazyLoading的使用方法。通过配置HTML标签属性及JS初始化参数,实现图片在可视区域滚动时动态加载,有效提升页面性能。包含完整代码示例及参数说明。
imgLazyLoading插件简介与HTML结构
本文主要介绍Web前端开发中如何使用图片懒加载插件imgLazyLoading,供读者参考学习。
首先介绍HTML部分的代码结构。
JavaScript核心代码与配置参数
//懒加载对象目标代码
<img originalSrc="__PUBLIC__/images/home/icon_pingtuan.png">
//引用本地js
<script src="__PUBLIC__/js/imgLazyLoading.min.js"></script>
<script src="__PUBLIC__/js/imgLazyLoading.js"></script>
接着展示核心的JavaScript实现代码。
提供压缩版的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) { } // 加载图片失败后的回调函数(默认:不执行任何操作)
});
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
作者最新文章
定制 Quill.js 主题样式:修改默认 CSS 与添加自定义类名
2026-11-04 11:21:35
混淆JS代码怎么在线反混淆并格式化阅读
2026-11-03 21:46:39
JS在线编辑器代码报错怎么调试?控制台使用技巧
2026-11-03 21:24:56
从 marked.js 旧版本升级到最新版:API 变更与迁移指南
2026-11-03 17:38:17
JS富文本编辑器Quill与代码编辑器CodeMirror的区别及应用场景
2026-11-03 16:52:09
