圖片懶加載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)文章
詳解微信小程序開發(fā)—你期待的分享功能來了,微信小程序序新增5大功能
微信小程序在12月21日發(fā)布了新版本的開發(fā)工具,并在官網(wǎng)公布新增分享、模板消息、客服消息、掃一掃、帶參數(shù)二維碼功能。2016-12-12javascript框架設(shè)計(jì)讀書筆記之種子模塊
本文是司徒正美的《javascript框架設(shè)計(jì)》一書第一章種子模塊的讀書筆記,記錄了一下自認(rèn)為比較重要的東西,分享給大家2014-12-12地址欄上的一段語(yǔ)句,改變頁(yè)面的風(fēng)格。(教程)
地址欄中的js改變頁(yè)面的風(fēng)格代碼2008-04-04js實(shí)現(xiàn)獲取焦點(diǎn)后光標(biāo)在字符串后
這篇文章主要介紹了js實(shí)現(xiàn)獲取焦點(diǎn)后光標(biāo)在字符串后,原理就是獲得焦點(diǎn)后重新把自己復(fù)制粘帖一下,喜歡的朋友可以看看2014-09-09D3.js實(shí)現(xiàn)力向?qū)D的繪制教程詳解
力向?qū)D是繪圖的一種算法,實(shí)現(xiàn)了用以模擬粒子物理運(yùn)動(dòng)的?velocity?Verlet?數(shù)值積分器。本文將利用D3.js實(shí)現(xiàn)力向?qū)D的繪制,需要的可以參考一下2022-11-11bootstrap網(wǎng)格系統(tǒng)使用方法解析
這篇文章主要為大家詳細(xì)解析了bootstrap網(wǎng)絡(luò)系統(tǒng)使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01json的結(jié)構(gòu)與遍歷方法實(shí)例分析
這篇文章主要介紹了json的結(jié)構(gòu)與遍歷方法,結(jié)合具體實(shí)例形式分析了json常見的簡(jiǎn)單與復(fù)雜結(jié)構(gòu)表示方法,以及具體的遍歷操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04JavaScript實(shí)現(xiàn)圖片自動(dòng)加載的瀑布流效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)圖片自動(dòng)加載的瀑布流效果的相關(guān)資料,需要的朋友可以參考下2016-04-04