diff --git a/assets/css/src/_header.scss b/assets/css/src/_header.scss index e7f897e..b7fea59 100644 --- a/assets/css/src/_header.scss +++ b/assets/css/src/_header.scss @@ -22,6 +22,7 @@ .characters { margin-top: var(--offset); + scale: var(--scale); svg { margin-top: -2.5rem; #left-character-background, diff --git a/assets/images/characters/characters.svg b/assets/images/characters/characters.svg index d69123f..b86748e 100644 --- a/assets/images/characters/characters.svg +++ b/assets/images/characters/characters.svg @@ -1,6 +1,6 @@ - + diff --git a/assets/js/script.js b/assets/js/script.js index 40a7b83..bea887f 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -4,6 +4,8 @@ document.addEventListener("DOMContentLoaded", () => { const CHAR_SPEED = 0.6; const LOGO_SPEED = 1.2; + const CHAR_WIDTH_MAX = 304; + const CHAR_WIDTH_MIN = 150; // Valeurs initiales lues depuis l'attribut style HTML const charMax = parseFloat( @@ -16,6 +18,7 @@ document.addEventListener("DOMContentLoaded", () => { // Characters : descend de charMax à 0 au fil du scroll moveCharacters(scrollY); + scaleCharacters(scrollY); moveLogo(scrollY); } @@ -24,6 +27,12 @@ document.addEventListener("DOMContentLoaded", () => { charactersWrapper.style.setProperty("--offset", charOffset + "rem"); } + function scaleCharacters(scrollY) { + const charOffset = Math.max(0, charMax - (scrollY / 16) * CHAR_SPEED); + const charWidth = CHAR_WIDTH_MIN + (charOffset / charMax) * (CHAR_WIDTH_MAX - CHAR_WIDTH_MIN); + charactersWrapper.querySelector("svg").setAttribute("width", charWidth + "px"); + } + function moveLogo(scrollY) { const logoOffset = Math.min(scrollY * LOGO_SPEED, logoMax); logo.style.setProperty("--logo-offset", `-${logoOffset}px`); diff --git a/site/snippets/header.php b/site/snippets/header.php index e99bd0c..6c575f2 100644 --- a/site/snippets/header.php +++ b/site/snippets/header.php @@ -12,7 +12,7 @@ Lesort
Hecq -
+