feat(frontend): replace lazy loading with zibll lazysizes
This commit is contained in:
+26
-27
@@ -118,24 +118,32 @@
|
||||
if (message) message.hidden = false;
|
||||
});
|
||||
}
|
||||
if (typeof window.DPlayer !== 'function') return;
|
||||
var holder = document.createElement('div');
|
||||
holder.className = 'aksrt-widget-video__player';
|
||||
el.insertBefore(holder, fallback || el.firstChild);
|
||||
try {
|
||||
el.aksrtPlayer = new window.DPlayer({
|
||||
container: holder,
|
||||
autoplay: el.dataset.autoplay === '1' && !reducedMotion,
|
||||
video: {
|
||||
url: el.dataset.videoUrl || '',
|
||||
pic: el.dataset.videoPoster || '',
|
||||
type: videoType(el.dataset.videoUrl || '')
|
||||
}
|
||||
});
|
||||
if (el.dataset.muted === '1' && el.aksrtPlayer.video) el.aksrtPlayer.video.muted = true;
|
||||
if (fallback) fallback.hidden = true;
|
||||
} catch (error) {
|
||||
holder.remove();
|
||||
function mountPlayer(event) {
|
||||
if (typeof window.DPlayer !== 'function' || el.aksrtPlayer) return;
|
||||
if (event) event.preventDefault();
|
||||
var holder = document.createElement('div');
|
||||
holder.className = 'aksrt-widget-video__player';
|
||||
el.insertBefore(holder, fallback || el.firstChild);
|
||||
try {
|
||||
el.aksrtPlayer = new window.DPlayer({
|
||||
container: holder,
|
||||
autoplay: el.dataset.autoplay === '1' && !reducedMotion,
|
||||
video: {
|
||||
url: el.dataset.videoUrl || '',
|
||||
pic: el.dataset.videoPoster || '',
|
||||
type: videoType(el.dataset.videoUrl || '')
|
||||
}
|
||||
});
|
||||
if (el.dataset.muted === '1' && el.aksrtPlayer.video) el.aksrtPlayer.video.muted = true;
|
||||
if (fallback) fallback.hidden = true;
|
||||
} catch (error) {
|
||||
holder.remove();
|
||||
}
|
||||
}
|
||||
if (fallback && fallback.classList.contains('lazyload')) {
|
||||
fallback.addEventListener('lazybeforeunveil', mountPlayer, { once: true });
|
||||
} else {
|
||||
mountPlayer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,15 +262,6 @@
|
||||
if (more) loadItems(container, Number(more.dataset.nextPage || 2), true);
|
||||
if (pageButton) loadItems(container, Number(pageButton.dataset.widgetPage || 1), false);
|
||||
});
|
||||
if ('IntersectionObserver' in window) {
|
||||
var observer = new IntersectionObserver(function (entries) {
|
||||
entries.forEach(function (entry) {
|
||||
var more = container.querySelector('.aksrt-widget-load-more[data-mode="infinite"]');
|
||||
if (entry.isIntersecting && more) loadItems(container, Number(more.dataset.nextPage || 2), true);
|
||||
});
|
||||
}, { rootMargin: '240px' });
|
||||
observer.observe(container);
|
||||
}
|
||||
}
|
||||
|
||||
function initTabs(tabs) {
|
||||
|
||||
Reference in New Issue
Block a user