Skip to content

Commit 93a064e

Browse files
authored
Merge pull request #28 from yuriyhamulevych/7124-hyva-demo
7124-hyva-demo
2 parents 3c16388 + 59c5133 commit 93a064e

File tree

1 file changed

+48
-36
lines changed

1 file changed

+48
-36
lines changed

view/frontend/templates/lazy.phtml

+48-36
Original file line numberDiff line numberDiff line change
@@ -41,69 +41,81 @@
4141
})();
4242
</script>
4343
<script>
44-
require(['jquery', 'domReady!'], function($){
45-
46-
function replacePixelImage() {
47-
var $t = $(this);
48-
if (!$t.hasClass(l)) {
49-
var src = $t.data('original');
44+
document.addEventListener("DOMContentLoaded", function() {
45+
function replacePixelImage(img) {
46+
if (!img.classList.contains('loaded')) {
47+
var src = img.getAttribute('data-original');
5048
if (src) {
51-
$t.attr('src', src).addClass(l);
49+
img.setAttribute('src', src);
50+
img.classList.add('loaded')
5251
}
53-
var srcset = $t.data('originalset');
52+
var srcset = img.getAttribute('data-originalset');
5453
if (srcset) {
55-
$t.attr('srcset', srcset).addClass(l);
54+
img.setAttribute('srcset', srcset);
55+
img.classList.add('loaded')
5656
}
5757
}
5858
}
5959

6060
/* Fix for product tabs */
6161
var l = 'loaded';
62-
$('.product.info.detailed .data.item.title a').click(function(){
63-
$('.product.info.detailed img[data-original^="h"],.product.info.detailed source[data-originalset^="h"]').each(replacePixelImage);
64-
});
65-
$('.nav-sections .navigation').on('click mouseenter', function(){
66-
$(this).find('img[data-original^="h"],source[data-originalset^="h"]').each(replacePixelImage);
67-
});
62+
var productInfoDetailedImg = document.querySelector('.product.info.detailed .data.item.title a');
63+
if(productInfoDetailedImg){
64+
productInfoDetailedImg.addEventListener('click', function () {
65+
document.querySelectorAll('.product.info.detailed img[data-original^="h"],.product.info.detailed source[data-originalset^="h"]').forEach(function(el){
66+
replacePixelImage(el);
67+
});
68+
});
69+
}
70+
71+
var navSectionsNavigation = document.querySelector('.nav-sections .navigation');
72+
if(navSectionsNavigation) {
73+
navSectionsNavigation.addEventListener("click", handlerMouseEvent, false);
74+
navSectionsNavigation.addEventListener("mouseenter", handlerMouseEvent, false);
75+
}
76+
function handlerMouseEvent(e) {
77+
e.target.querySelectorAll('img[data-original^="h"],source[data-originalset^="h"]').forEach(function (el) {
78+
replacePixelImage(el);
79+
});
80+
}
81+
6882

6983
/* Fix for sliders */
7084
var intr = setInterval(function(){
71-
$sliders = $('.slick-track, .swiper-wrapper, .owl-carousel');
72-
if (!$sliders.length) clearInterval(intr);
73-
$sliders.each(function() {
74-
var $imgs = $(this).find('img,source');
85+
var sliders = document.querySelectorAll('.slick-track, .swiper-wrapper, .owl-carousel');
86+
if (!sliders.length) clearInterval(intr);
87+
sliders.forEach(function(el) {
88+
var imgs = el.querySelectorAll('img,source');
7589
var c = 0;
76-
$imgs.each(function(){
77-
var $img = $(this);
78-
if (($img.attr('src') && $img.attr('src').indexOf('pixel.jpg') != -1)
79-
|| ($img.attr('srcset') && $img.attr('srcset').indexOf('pixel.jpg') != -1)
90+
imgs.forEach(function(el){
91+
if ((el.getAttribute('src') && el.getAttribute('src').indexOf('pixel.jpg') != -1)
92+
|| (el.getAttribute('srcset') && el.getAttribute('srcset').indexOf('pixel.jpg') != -1)
8093
) {
8194
c++;
8295
}
8396
});
84-
if (c && $imgs.length != c) {
85-
$imgs.each(function(){
86-
var $img = $(this);
87-
var src = $img.data('original');
97+
if (c && imgs.length != c) {
98+
imgs.forEach(function(el){
99+
var src = el.getAttribute('data-original');
88100
if (src) {
89-
$img.attr('src', src);
101+
el.setAttribute('src', src);
90102
}
91103

92-
var srcset = $img.data('originalset');
104+
var srcset = el.getAttribute('data-originalset');
93105
if (srcset) {
94-
$img.attr('srcset', srcset).addClass(l);
106+
el.setAttribute('srcset', srcset);
107+
el.classList.add(l)
95108
}
96109
});
97110
}
98111

99112
/* Fix for page builder bg in the slider */
100-
var $mflazyBI = $(this).find('div.mflazy-background-image');
101-
var $BI = $(this).find('div.background-image');
113+
var mflazyBI = el.querySelectorAll('div.mflazy-background-image');
114+
var BI = el.querySelectorAll('div.background-image');
102115

103-
if ($mflazyBI.length && $BI.length) {
104-
$mflazyBI.each(function(){
105-
var a = this;
106-
a.className = a.className.replace(/mflazy-background-image/g, 'background-image');
116+
if (mflazyBI.length && BI.length) {
117+
mflazyBI.forEach(function(el) {
118+
el.className = el.className.replace(/mflazy-background-image/g, 'background-image');
107119
});
108120
}
109121

0 commit comments

Comments
 (0)