基于jQuery的图片懒加载实现:利用src2属性延迟加载
作者:霁月时间:2026-10-27 12:24:25浏览:75
本文介绍一种基于jQuery的图片懒加载实现方案。核心思路是将图片真实地址暂存于自定义的src2属性中,初始时不加载。通过监听窗口滚动事件,判断图片是否进入可视区域,若进入则将src2的值赋给src属性以触发加载,并移除src2属性。该示例代码展示了如何配置加载对象及处理滚动逻辑。
jQuery图片懒加载实现原理与代码示例
近期分析了京东商城采用的基于jQuery的图片懒加载方案,具体实现逻辑如下。
其核心机制是将图片的真实地址预先赋值给img标签的src2自定义属性,而在页面初始显示阶段,仅使用默认占位图。当需要展示图片时,再将src2中的地址赋值给src属性,从而触发图片加载。
具体代码实现如下所示。
function lazyload(option) {
var settings = {
defObj: null,
defHeight: 0
};
settings = $.extend(settings, option || {});
var defHeight = settings.defHeight;
var defObj = (typeof settings.defObj == "object") ? settings.defObj.find("img") : $(settings.defObj).find("img");
var pageTop = function() {
return document.documentElement.clientHeight + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - settings.defHeight;
};
var imgLoad = function() {
defObj.each(function() {
if ($(this).offset().top <= pageTop()) {
var src2 = $(this).attr("src2");
//已显示的不用再显示
if (src2) {
//显示后,去掉src2属性
$(this).attr("src", src2).removeAttr("src2");
}
}
});
};
imgLoad();
$(window).bind("scroll", function() {
imgLoad();
});
}
lazyload({
defObj:".w1"
});作者最新文章
tween.js 内存泄漏预防:怎么正确停止动画与清理对象
2026-11-05 15:52:56
Vue或React项目中为何不建议直接使用JS刷新页面
2026-11-05 13:57:30
哪里可以找到高质量的免费JS脚本资源?
2026-11-05 13:15:03
JS数组对象怎么根据指定ID字段去重
2026-11-04 21:41:10
JS数组去重方法性能对比:Set、Map与Filter谁更快
2026-11-04 16:14:15
