本文主要介紹了jquery實作非同步載入(懶載入圖片一種方式),具有一定的參考價值,有興趣的夥伴們可以參考一下。
首先將外掛程式在jq後面引入
(function($) { // alert($.fn.scrollLoading); $.fn.scrollLoading = function(options) { var defaults = { attr: "data-url" }; var params = $.extend({}, defaults, options || {}); params.cache = []; $(this).each(function() { var node = this.nodeName.toLowerCase(), url = $(this).attr(params["attr"]); if(!url) { return; } var data = { obj: $(this), tag: node, url: url }; params.cache.push(data); }); var loading = function() { var st = $(window).scrollTop(), sth = st + $(window).height(); $.each(params.cache, function(i, data) { var o = data.obj, tag = data.tag, url = data.url; if(o) { post = o.position().top; posb = post + o.height(); if((post > st && post < sth) || (posb > st && posb < sth)) { if(tag === "img") { o.attr("src", url); } else { o.load(url); } data.obj = null; } } }); return false; }; loading(); $(window).bind("scroll", loading); }; })(jQuery);
然後在底部初始化
# #
$(document).ready(function () { //实现图片慢慢浮现出来的效果 $("img").load(function () { //图片默认隐藏 $(this).hide(); //使用fadeIn特效 $(this).fadeIn("5000"); }); // 异步加载图片,实现逐屏加载图片 $(".scrollLoading").scrollLoading(); });需要修改img標籤為
<img class="scrollLoading" data-url="image/logo.jpg" src="images/load.gif" />data-url表示將要異步載入的圖片,src表示首先載入的圖片(一般會是小圖片,或是動畫,網頁中全部的src連結同一個圖片,這樣網頁就載入快好多,這個時候再異步的載入要載入的圖片,也就現在要說的功能)
以上是jquery懶載入圖片一種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!