Files
web/app/plugins/header.client.ts
2025-10-07 13:52:57 +07:00

30 lines
1011 B
TypeScript

export default defineNuxtPlugin(() => {
if (process.server) return
window.addEventListener('scroll', () => {
const headerShadow = document.querySelector('.web-header-emit-shadow-when-top')
const headerAutohide = document.querySelector('.web-header-autohide')
if (!headerShadow && !headerAutohide) return
// --- Shadow when not at top ---
if (headerShadow) {
if (window.scrollY > 0) headerShadow.classList.add('shadow-active')
else headerShadow.classList.remove('shadow-active')
}
// --- Auto-hide logic ---
if (headerAutohide) {
const lastScrollY = Number(headerAutohide.getAttribute('data-last-scroll')) || 0
const currentScrollY = window.scrollY
if (currentScrollY > lastScrollY && currentScrollY > 0) {
headerAutohide.classList.add('web-header-hidden')
} else {
headerAutohide.classList.remove('web-header-hidden')
}
headerAutohide.setAttribute('data-last-scroll', String(currentScrollY))
}
})
})