圖片懶加載imgLazyLoading.js使用詳解
本文主要介紹web前端使用圖片懶加載imgLazyLoading ,供大家參考,具體內(nèi)容如下
1、html代碼
//懶加載對(duì)象目標(biāo)代碼 <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", // 預(yù)加載前顯示的圖片
errorImg: "", // 讀取圖片錯(cuò)誤時(shí)替換圖片(默認(rèn):與defaultImg一樣)
imgSrcAttr: "originalSrc", // 記錄圖片路徑的屬性(默認(rèn):originalSrc,頁(yè)面img的src屬性也要替換為originalSrc)
beforehand: 0, // 預(yù)先提前多少像素加載圖片(默認(rèn):0)
event: "scroll", // 觸發(fā)加載圖片事件(默認(rèn):scroll)
duration: "normal", // 三種預(yù)定淡出(入)速度之一的字符串("slow", "normal", or "fast")或表示動(dòng)畫時(shí)長(zhǎng)的毫秒數(shù)值(如:1000),默認(rèn):"normal"
container: window, // 對(duì)象加載的位置容器(默認(rèn):window)
success: function (imgObj) { }, // 加載圖片成功后的回調(diào)函數(shù)(默認(rèn):不執(zhí)行任何操作)
error: function (imgObj) { } // 加載圖片失敗后的回調(diào)函數(shù)(默認(rèn):不執(zhí)行任何操作)
});
});
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)述凍結(jié)JS對(duì)象方法技術(shù)
本文主要介紹了凍結(jié)JS對(duì)象方法技術(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
js左右彈性滾動(dòng)對(duì)聯(lián)廣告代碼分享
這個(gè)對(duì)聯(lián)廣告與其它的有所區(qū)別,這個(gè)是頁(yè)面加載時(shí)先沒看到廣告,然后從左邊快速飛進(jìn)來(lái)的兩個(gè)對(duì)聯(lián)廣告哦,下面我們一起來(lái)看看對(duì)聯(lián)廣告效果代碼2014-02-02
js select實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)選擇
這篇文章主要為大家詳細(xì)介紹了js select實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)選擇效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
javascript內(nèi)嵌式與外鏈?zhǔn)降幕緫?yīng)用方式
這篇文章主要介紹了javascript內(nèi)嵌式與外鏈?zhǔn)降幕緫?yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
JS Array創(chuàng)建及concat()split()slice()的使用方法
下面小編就為大家?guī)?lái)一篇JS Array創(chuàng)建及concat()split()slice()的使用方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06
如何使用 Intl.RelativeTimeFormat 在 JavaScript&nbs
Intl.RelativeTimeFormat是JavaScript提供的一個(gè)國(guó)際化API,用于格式化相對(duì)時(shí)間,如"3天前"或"2年后",支持多種語(yǔ)言和配置選項(xiàng),適用于社交媒體時(shí)間戳和事件提醒等場(chǎng)景,它簡(jiǎn)化了國(guó)際化的相對(duì)時(shí)間顯示,使開發(fā)者能夠根據(jù)用戶的語(yǔ)言和區(qū)域設(shè)置輕松實(shí)現(xiàn)時(shí)間格式化2024-09-09
Javascript隨機(jī)標(biāo)簽云代碼實(shí)例
這篇文章主要分享一個(gè)Javascript隨機(jī)標(biāo)簽云代碼實(shí)例,需要的朋友可以參考下。2016-06-06

