對于一個網站而言,加載速度的快慢往往能決定用戶是否會繼續留在該網站瀏覽內容。如果加載時間過長,用戶將會感到厭煩并選擇離開。這時,jQuery lazy loading插件的出現就能很好地解決這一問題。
(function($) { $.fn.lazyload = function(options) { var settings = $.extend({ threshold: 0, failure_limit: 0, event: "scroll", effect: "show", container: window }, options); var elements = this; var $container = $(settings.container); var $first_element = $(elements[0]); var $images = undefined; var unloaded_count = elements.length - settings.failure_limit; function initialize() { $images = elements.filter(function() { var $element = $(this); return !$element.data("processed"); }); } function checkImages() { var windowHeight = $container.height(); var scrollTop = $container.scrollTop(); var topThreshold = scrollTop - settings.threshold; var bottomThreshold = scrollTop + windowHeight + settings.threshold; $images.each(function() { var $image = $(this); if ($image.offset().top< bottomThreshold && $image.offset().top + $image.height() >topThreshold) { $image.hide() .attr("src", $image.data("original")) .css("display", settings.effect) .data("processed", true); unloaded_count--; if (unloaded_count == 0) { $container.off(settings.event, checkImages); } } }); } if (!$first_element.length) { return false; } initialize(); $container.on(settings.event, checkImages); checkImages(); return this; }; })(jQuery);
利用jQuery的強大功能,該插件可以懶加載圖片,只有當圖片進入瀏覽器的可見范圍內才開始加載。這樣,就可以有效地減少頁面加載時間,提高用戶體驗。使用該插件只需要引入相應的JS文件,并對需要懶加載的圖片添加相應的class和data-src屬性即可。