Kod skryptu
(function($) { var qLimages = new Array; var qLdone = 0; var qLimageContainer = ""; var qLoverlay = ""; var qLbar = ""; var qLpercentage = ""; var qLimageCounter = 0; var qLoptions = { onComplete: function () {}, backgroundColor: "#000", barColor: "#fff", barHeight: 2, percentage: true, deepSearch: true, completeAnimation: "fade", onloadComplete: function () { if (qLoptions.completeAnimation == "grow") { $(qLbar).stop().css("width", "100%").animate({ top: "0%", height: "100%" }, 500, function () { $(qLoverlay).fadeOut(900, function () { $(this).remove(); qLoptions.onComplete(); }) }); } else { $(qLoverlay).fadeOut(1200, function () { $(qLoverlay).remove(); qLoptions.onComplete(); }); } } } var afterEach = function () { createPreloadContainer(); createOverlayLoader(); } var createPreloadContainer = function() { display: "none", width: 0, height: 0, overflow: "hidden" }); for (var i = 0; qLimages.length > i; i++) { $.ajax({ url: qLimages[i], type: 'HEAD', success: function(data) { qLimageCounter++; addImageForPreload(this['url']); } }); } } var addImageForPreload = function(url) { var image = $("<img />").attr("src", url).bind("load", function () { completeImageLoading(); }).appendTo(qLimageContainer); } var completeImageLoading = function () { qLdone++; var percentage = (qLdone / qLimageCounter) * 100; $(qLbar).stop().animate({ width: percentage + "%" }, 200); if (qLoptions.percentage == true) { $(qLpercentage).text(Math.ceil(percentage) + "%"); } if (qLdone == qLimageCounter) { destroyQueryLoader(); } } var destroyQueryLoader = function () { $(qLimageContainer).remove(); qLoptions.onloadComplete(); } var createOverlayLoader = function () { width: "100%", height: "100%", backgroundColor: qLoptions.backgroundColor, backgroundPosition: "fixed", position: "fixed", zIndex: 666999, top: 0, left: 0 }).appendTo("body"); height: qLoptions.barHeight + "px", marginTop: "-" + (qLoptions.barHeight / 2) + "px", backgroundColor: qLoptions.barColor, width: "0%", position: "absolute", top: "50%" }).appendTo(qLoverlay); if (qLoptions.percentage == true) { height: "40px", width: "100px", position: "absolute", fontSize: "3em", top: "50%", left: "50%", marginTop: "-" + (59 + qLoptions.barHeight) + "px", textAlign: "center", marginLeft: "-50px", color: qLoptions.barColor }).appendTo(qLoverlay); } } var findImageInElement = function (element) { var url = ""; if ($(element).css("background-image") != "none") { var url = $(element).css("background-image"); } else if (typeof($(element).attr("src")) != "undefined" && element.nodeName.toLowerCase() == "img") { var url = $(element).attr("src"); } if (url.indexOf("gradient") == -1) { url = url.replace(/url\(\"/g, ""); url = url.replace(/url\(/g, ""); url = url.replace(/\"\)/g, ""); url = url.replace(/\)/g, ""); var urls = url.split(", "); for (var i = 0; i < urls.length; i++) { if (urls[i].length > 0) { var extra = ""; if ($.browser.msie && $.browser.version < 9) { extra = "?" + Math.floor(Math.random() * 3000); } qLimages.push(urls[i] + extra); } } } } $.fn.queryLoader2 = function(options) { if(options) { $.extend(qLoptions, options ); } this.each(function() { findImageInElement(this); if (qLoptions.deepSearch == true) { $(this).find("*:not(script)").each(function() { findImageInElement(this); }); } }); afterEach(); return this; }; })(jQuery);