1 2 function initLazyLoading(){ 3 var LAZY_CLASS = "vs-lazy"; 4 var PLACEHOLDER_CLASS = "vs-img-placeholder"; 5 6 /** 7 * Function to remove lazyness from an image. Puts data-src to src and removes vs-lazy class. 8 * @param {JqueryObject} lazyImage 9 */ 10 var removeLazyness = function(lazyImage) { 11 let 12 src = lazyImage.attr("data-src"), 13 bgimage = lazyImage.attr("data-bgimage"), 14 video = lazyImage.is("video"); 15 16 if (src) { 17 lazyImage.attr("src", src); 18 lazyImage.removeAttr("data-src"); 19 lazyImage.removeClass(LAZY_CLASS); 20 } 21 if (bgimage) { 22 lazyImage.css('background-image','url('+bgimage+')'); 23 lazyImage.removeAttr("data-bgimage"); 24 lazyImage.removeClass(LAZY_CLASS); 25 } 26 if (video) { 27 let source = lazyImage.find("source"); 28 src = source.attr("data-src"); 29 source.attr("src", src); 30 var firstImage = $(lazyImage).get(0); 31 $(firstImage).trigger('load'); 32 source.removeAttr("data-src"); 33 lazyImage.removeClass(LAZY_CLASS); 34 } 35 } 36 let 37 allLazyImages = $("img." + LAZY_CLASS + "." + PLACEHOLDER_CLASS), 38 allLazyBgImages = $(".vs-bg-image." + LAZY_CLASS), 39 allLazyVideos = $("video." + LAZY_CLASS), 40 41 disabledLazyImages = $("[data-disable-lazyloading='true'] img." + LAZY_CLASS + "." + PLACEHOLDER_CLASS), 42 disabledBgLazyImages = $("[data-disable-lazyloading='true'] .vs-bg-image." + LAZY_CLASS), 43 disabledLazyVideos = $("[data-disable-lazyloading='true'] video." + LAZY_CLASS), 44 disabledLazyItems = $.merge($.merge(disabledLazyImages, disabledBgLazyImages ), disabledLazyVideos), 45 46 enabledLazyImages = allLazyImages.not(disabledLazyImages), 47 enabledBgLazyImages = allLazyBgImages.not(disabledBgLazyImages), 48 enabledLazyVideos = allLazyVideos.not(disabledLazyVideos), 49 enabledLazyItems = $.merge($.merge(enabledBgLazyImages, enabledLazyImages ), enabledLazyVideos); 50 51 // Remove lazyness of images with disabled lazy loading 52 disabledLazyItems.each(function() { 53 removeLazyness($(this)); 54 }); 55 56 if ("IntersectionObserver" in window && ('isIntersecting' in IntersectionObserverEntry.prototype)) { 57 var lazyImageObserver = new IntersectionObserver(function(entries, observer) { 58 entries.forEach(function(entry) { 59 var lazyImage = $(entry.target); 60 if (entry.isIntersecting) { 61 removeLazyness(lazyImage); 62 lazyImageObserver.unobserve(lazyImage[0]); 63 } 64 }); 65 }); 66 67 enabledLazyItems.each(function() { 68 lazyImageObserver.observe(this); 69 }); 70 71 } else { 72 enabledLazyItems.inview({ 73 inview: function() { 74 removeLazyness($(this)); 75 } 76 }); 77 } 78 79 80 } 81(function($) { 82 initLazyLoading(); 83 84})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.