Files
Websites/Profice WebSite/scripts/scroll-header.min.js
2026-02-06 09:09:58 +01:00

2 lines
1.1 KiB
JavaScript

document.addEventListener("DOMContentLoaded",function(){const topBanner=document.querySelector('.top-banner');const slideMenu=document.querySelector('.slide-menu');if(!topBanner)return;const scrollThreshold=50;let isScrolled=false;let lastScrollY=0;let rafId=null;function updateHeaderState(scrolled){if(scrolled===isScrolled)return;requestAnimationFrame(()=>{if(scrolled){topBanner.classList.add('scrolled');if(slideMenu){slideMenu.style.transition='top 0.3s cubic-bezier(0.4, 0, 0.2, 1)';slideMenu.style.top='80px';}}else{topBanner.classList.remove('scrolled');if(slideMenu){slideMenu.style.transition='top 0.3s cubic-bezier(0.4, 0, 0.2, 1)';slideMenu.style.top='110px';}}});isScrolled=scrolled;}function handleScroll(){const currentScrollY=window.pageYOffset||document.documentElement.scrollTop;const shouldScroll=currentScrollY>scrollThreshold;updateHeaderState(shouldScroll);lastScrollY=currentScrollY;rafId=null;}function onScroll(){if(!rafId){rafId=requestAnimationFrame(handleScroll);}}window.addEventListener('scroll',onScroll,{passive:true});updateHeaderState(window.pageYOffset>scrollThreshold);});