Add logo animation to gallery page

This commit is contained in:
Paul Nicoué 2022-08-03 14:55:32 +02:00
parent 0d52c5dd04
commit 9cd82101c8
3 changed files with 53 additions and 27 deletions

File diff suppressed because one or more lines are too long

View file

@ -8,11 +8,11 @@ import Splide from '@splidejs/splide';
const body = document.body;
// SLIDER
// SPLIDE SLIDER
let splide = document.querySelector('.splide');
let splideSlider = document.querySelector('.splide');
// IFRAME LOADING ANIMATIONS
// EXHIBITION IFRAME
const sidebar = document.querySelector('.sidebar');
const sidebarNavLinks = document.querySelectorAll('.sidebar__nav-link--internal');
@ -36,11 +36,11 @@ function convertRemToPixels(rem) {
return rem * fontSize;
}
// SLIDER
// SPLIDE SLIDER
function setUpSlider() {
if (splide) {
splide = new Splide('.splide', {
if (splideSlider) {
splideSlider = new Splide('.splide', {
type: 'fade',
rewind: true,
rewindByDrag: true,
@ -57,15 +57,13 @@ function setUpSlider() {
}
function goToNextSlideOnClick() {
if (splide) {
splide.on('click', function(e) {
splide.go('>');
if (splideSlider) {
splideSlider.on('click', function(e) {
splideSlider.go('>');
});
}
}
// IFRAME LOADING ANIMATIONS
function enableLogoIconRotation() {
if (logoIcon) {
logoIcon.classList.add('logo__icon--rotate-horizontal-bottom');
@ -78,6 +76,20 @@ function disableLogoIconRotation() {
}
}
function rotateLogoOnSliderMove() {
if (splideSlider && logoIcon) {
splideSlider.on('move', function(e) {
logoIcon.removeEventListener('animationiteration', disableLogoIconRotation);
enableLogoIconRotation();
});
splideSlider.on('moved', function(e) {
logoIcon.addEventListener('animationiteration', disableLogoIconRotation);
});
}
}
// EXHIBITION IFRAME
function slimDownSidebar() {
if (sidebar && !sidebar.classList.contains('sidebar--slimmed')) {
sidebar.classList.add('sidebar--slimmed');
@ -134,11 +146,12 @@ function loadExhibitionIframe() {
enableActivePseudoClass();
// SLIDER
// SPLIDE SLIDER
setUpSlider();
goToNextSlideOnClick();
rotateLogoOnSliderMove();
// IFRAME LOADING ANIMATIONS
// EXHIBITION IFRAME
loadExhibitionIframe();