window.addEventListener('load', (event) => { let currentScrollPos = 0 let prevScrollPos = 0 const secondaryNav = document.querySelector('.secondary-nav') if (typeof(secondaryNav) == 'undefined' || secondaryNav == null) return const secondaryNavTrigger = document.querySelector('.secondary-nav-trigger') const secondaryNavLinks = secondaryNav.querySelectorAll('ul li a') function getSecondaryNavHeight(){ document.documentElement.style.setProperty("--secondary-nav-height", `${secondaryNav.clientHeight}px`) } if(secondaryNav !== null) getSecondaryNavHeight() let secondaryNavObserver = new IntersectionObserver((entries) => { entries.forEach(entry => { if(!entry.isIntersecting && currentScrollPos > entry.target.getBoundingClientRect().top){ secondaryNav.classList.add('is-visible') } else { secondaryNav.classList.remove('is-visible') } }) }, { threshold: 1, rootMargin: '-1px 0px 0px 0px' }) function getSecondaryNavButtonWidth(){ const secondaryNavButtonWidth = secondaryNav.querySelector('.secondary-nav__btn').clientWidth secondaryNav.style.setProperty("--secondary-nav-button-width", `${secondaryNavButtonWidth}px`) } if(secondaryNav !== null) { secondaryNavObserver.observe(secondaryNavTrigger) getSecondaryNavButtonWidth() window.addEventListener('scroll', () => { currentScrollPos = window.scrollY if (prevScrollPos > 0 && prevScrollPos < currentScrollPos && currentScrollPos > window.innerHeight ) { secondaryNav.classList.remove('is-stacked') } else if (prevScrollPos >= currentScrollPos) { secondaryNav.classList.add('is-stacked') } prevScrollPos = currentScrollPos }) } window.addEventListener('resize', function(){ if(secondaryNav !== null) { getSecondaryNavButtonWidth() } }) //smooth scrolling anchor links secondaryNavLinks.forEach(link => { link.addEventListener('click', function(e){ e.preventDefault() document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }) }) }) })