// gsap.registerPlugin(ScrollTrigger, SplitText); const lenis = new Lenis() function raf(time) { lenis.raf(time) requestAnimationFrame(raf) } requestAnimationFrame(raf) let oldScrollY = window.scrollY; window.onscroll = function () { if (oldScrollY < window.scrollY) { document.body.setAttribute('data-direction', 'down'); } else { document.body.setAttribute('data-direction', 'up'); } if (window.scrollY > 80) { document.body.classList.add('min-scroll'); } else { document.body.classList.remove('min-scroll'); } oldScrollY = window.scrollY; } function delay(n) { n = n || 2000; return new Promise((done) => { setTimeout(() => { done(); }, n); }); } barba.init({ transitions: [{ name: 'default-transition', async once() { initScript(); menuAnimation(); }, async leave(data) { }, async enter(data) { // window.scrollTo(0, 0); }, }] }); function initScript() { initVh(); search(); } function menuAnimation() { const toggle = document.querySelector('.navbar__toggler'); toggle.addEventListener('click', () => { document.body.classList.toggle('menu--is-open'); }); const links = document.querySelectorAll('.navbar__menu__link'); links.forEach((link, index) => { setupSplitText(link, 100 * index + 100); }); setupSplitText(".navbar h1"); } function search() { const form = document.querySelector("form"); if (form) { form.addEventListener("submit", function (event) { event.preventDefault(); let formData = new FormData(form); let search = new URLSearchParams(formData); let queryString = search.toString(); barba.go(`/?${queryString}`); }); } document.addEventListener("keydown", function (event) { const input = document.querySelector("#search"); if (event.key === "/" && document.activeElement !== input) { event.preventDefault(); if (input) { input.focus(); } } }); } const updateBodyClass = (html) => { const parser = new DOMParser(); const source = parser.parseFromString(html, 'text/html'); const classNames = source.querySelector('body').classList; document.body.classList = classNames; }; const updateNavClass = (html) => { const parser = new DOMParser(); const source = parser.parseFromString(html, 'text/html'); const updateItems = source.querySelectorAll('.menu-item'); const sidebar = document.querySelector('.sidebar'); sidebar.querySelectorAll('.menu-item').forEach((item, index) => { const newClasses = updateItems[index].classList.value; item.setAttribute('class', newClasses); }); }; function initCF7(form) { var forms = form.querySelectorAll(".wpcf7 > form"); if (forms.length > 0) { forms.forEach(function (form) { wpcf7.init(form); }); } } barba.hooks.beforeLeave(() => { document.body.classList.add("--transition"); }); barba.hooks.beforeEnter((data) => { updateBodyClass(data.next.html); updateNavClass(data.next.html); initCF7(data.next.container) lenis.scrollTo(0, 0); }); barba.hooks.after(() => { document.body.classList.remove("--transition"); }); function initVh() { let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`); window.addEventListener('resize', () => { let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`); }); }