基于jQuery的图片懒加载实现:利用src2属性延迟加载

作者:霁月

时间:2026-10-27

浏览:74

本文介绍一种基于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"
});

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章