From 6dd7d33661b37f5cf5f213f870ac40252ce05428 Mon Sep 17 00:00:00 2001 From: Techit Thawiang Date: Mon, 6 Oct 2025 18:31:53 +0700 Subject: [PATCH] Copied from /js/nav.js --- plugins/header.client.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plugins/header.client.ts diff --git a/plugins/header.client.ts b/plugins/header.client.ts new file mode 100644 index 0000000..80d1f63 --- /dev/null +++ b/plugins/header.client.ts @@ -0,0 +1,29 @@ +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)) + } + }) +})