index-main/assets/js/script.js
Julie Blanc 4c34b3c398
All checks were successful
Deploy / Deploy to Production (push) Successful in 13s
masonry grid on home
2026-02-26 15:36:51 +01:00

77 lines
No EOL
1.8 KiB
JavaScript

import { headerToggle, headerScrollVisibility } from './header.js';
import { copyLink } from './share.js';
import { backToTop } from './back-to-top.js';
import { themeToggle } from './themeToggle.js';
import { playVideo } from './hero-video.js';
import { initDropdowns } from './dropdown.js';
import { initSwipers } from './swipers.js';
import { initSliderBeforeAfter} from './sliderBeforeAfter.js';
import { navInvestigation } from './investigation.js';
import { progressBar, scrollBack} from './bottom-bar.js';
import { initSort } from './sort.js';
const responsiveMedium = 1080;
const responsiveSmall = 768;
const responsiveSmallX = 560;
window.onload = async function () {
console.log("SCRIPT LOADED");
headerToggle();
themeToggle();
backToTop();
initSliderBeforeAfter();
copyLink();
playVideo();
initDropdowns(responsiveSmall, responsiveSmallX);
initSwipers();
progressBar();
scrollBack();
navInvestigation();
var elems = document.querySelectorAll('.grid-masonry');
var msnries = [];
function initMasonry() {
if (!elems.length) return;
if (window.innerWidth >= responsiveSmall) {
elems.forEach(function(elem, i) {
if (!msnries[i]) {
msnries[i] = new Masonry(elem, {
itemSelector: '.card--block:not(.is-sort-hidden)',
columnWidth: '.grid-sizer',
percentPosition: true,
gutter: 26
});
}
});
} else {
msnries.forEach(function(msnry, i) {
if (msnry) {
msnry.destroy();
msnries[i] = null;
}
});
}
}
initMasonry();
window.addEventListener('resize', initMasonry);
initSort(() => {
msnries.forEach(function(msnry) {
if (msnry) {
msnry.reloadItems();
msnry.layout();
}
});
});
}