Changed lazy load pictures and posters

This commit is contained in:
zeldaroot 2020-12-09 00:04:37 +02:00
parent 68b53a2e99
commit c4355dda98
1 changed files with 36 additions and 27 deletions

View File

@ -33,37 +33,46 @@
</div>
<script>
window.addEventListener('DOMContentLoaded', function() {
var dataCinemapressSrc = document.querySelectorAll('[data-cinemapress-src]');
if (dataCinemapressSrc) {
dataCinemapressSrc.forEach(function(cinemapressSrc) {
if (cinemapressSrc.complete) {
cinemapressSetImage(cinemapressSrc, 'cinemapressSrc');
} else {
cinemapressSrc.addEventListener('load', function() {
cinemapressSetImage(cinemapressSrc, 'cinemapressSrc');
}, { once: true });
(function() {
var dataAllSrc = document.querySelectorAll('[data-cinemapress-src],[data-cinemapress-bg-src]');
var dataAllSrcCount = (dataAllSrc && dataAllSrc.length) || 0;
var dataAllSrcCountComp = 0;
var fSrc = {
'dataCountImage': function() {
dataAllSrcCountComp = dataAllSrcCountComp+1;
if (dataAllSrcCount && dataAllSrcCountComp >= dataAllSrcCount) {
dataAllSrcCount = 0;
setTimeout(function() {
fSrc['checkLoad'](dataAllSrc, 'dataSetImage');
}, 1);
}
});
}
var dataCinemapressBgSrc = document.querySelectorAll('[data-cinemapress-bg-src]');
if (dataCinemapressBgSrc) {
dataCinemapressBgSrc.forEach(function(cinemapressBgSrc) {
cinemapressSetImage(cinemapressBgSrc, 'cinemapressBgSrc');
});
}
function cinemapressSetImage(elem, name) {
var img = new Image();
img.src = elem.dataset[name];
img.onload = function() {
if (name === 'cinemapressBgSrc') {
elem.style.backgroundImage = 'url("' + elem.dataset[name] + '")';
} else {
elem.src = elem.dataset[name];
},
'dataSetImage': function(el) {
var src = el.dataset.cinemapressSrc;
var bgSrc = el.dataset.cinemapressBgSrc;
if (!src && !bgSrc) return;
var img = new Image();
img.src = src ? src : bgSrc;
img.onload = function() {
if (src) { el.src = src; }
else { el.style.backgroundImage = 'url("' + bgSrc + '")';}
}
},
'checkLoad': function(els, fn) {
if (!els) return;
els.forEach(function(src) {
if (typeof src.complete === 'undefined' || src.complete) {
fSrc[fn](src);
} else {
src.addEventListener('load', function() {
fSrc[fn](this);
}, { once: true });
}
});
}
}
});
fSrc['checkLoad'](dataAllSrc, 'dataCountImage');
})();
</script>
<script src="/themes/<%- page.theme %>/public/js/all.min.js"></script>