ateliers55/user/themes/ateliers-55/js/script.js

103 lines
3.0 KiB
JavaScript

function toggleMenu(el) {
let nav = document.querySelector('nav');
el.classList.toggle('open');
nav.classList.toggle('open');
}
function toggleAbout() {
let arrow = document.querySelector('#about-arrow');
let aboutContent = document.querySelector('#about-hidden');
aboutContent.classList.toggle('open');
arrow.classList.toggle('open');
}
$(document).ready(function() {
let body = document.querySelector('body');
if (document.querySelector('.swiper')) {
body.style.overflowY = "hidden";
} else {
body.style.overflowY = "auto";
}
let swiperEl = document.querySelector('.swiper');
if (swiperEl) {
swiperEl.style.opacity = 1;
resizeVerticalImages();
}
initSwiper();
barba.init({
transitions: [{
name: 'opacity-transition',
leave(data) {
return gsap.to(data.current.container, {
opacity: 0
})
},
enter(data) {
return gsap.from(data.next.container, {
opacity: 0
})
}
}]
});
barba.hooks.before((data) => {
if (swiperEl) {
swiperEl.style.opacity = 0;
}
});
barba.hooks.after((data) => {
swiperEl = document.querySelector('.swiper');
if (swiperEl) {
if (document.querySelector('.swiper') && !document.querySelector('.swiper-initialized')) {
initSwiper();
body.style.overflowY = "hidden";
}
swiperEl.style.opacity = 1;
} else {
body.style.overflowY = "auto";
}
resizeVerticalImages();
});
})
function initSwiper() {
let swiper = new Swiper('.swiper', {
loop: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
});
}
function resizeVerticalImages() {
let verticalImages = document.querySelectorAll('.swiper-slide > img');
let imagesIndex = 0;
for (let img of verticalImages) {
if(img.complete){
imagesIndex++;
if (img.clientHeight > img.clientWidth) {
img.style.width = "50%";
}
if (imagesIndex === verticalImages.length) {
swiperSlideEls = document.querySelectorAll('.swiper-slide');
for (let swiperSlideEl of swiperSlideEls) {
swiperSlideEl.style.maxHeight = "unset";
}
}
} else {
img.onload = () => {
imagesIndex++;
if (img.clientHeight > img.clientWidth) {
img.style.width = "50%";
}
if (imagesIndex === verticalImages.length) {
swiperSlideEls = document.querySelectorAll('.swiper-slide');
for (let swiperSlideEl of swiperSlideEls) {
swiperSlideEl.style.maxHeight = "unset";
}
}
}
}
}
}