aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Header.astro
diff options
context:
space:
mode:
authorCodeFromKerala <mjnair52@gmail.com>2026-03-04 10:34:16 +0530
committerCodeFromKerala <mjnair52@gmail.com>2026-03-04 10:34:16 +0530
commit5b7e8541ea3cc050c198f526c698ac307ca59e9f (patch)
tree55466eb03c6f42d103ec20a6c0d231b1b08dbd56 /src/components/Header.astro
parent372de7f4ed6288a736704b9323bad897ad41b7c1 (diff)
parent00368af270e341aa0dd68211b69b141059943de4 (diff)
Merge branch 'main' of https://codeberg.org/CodeFromKerala/website-src
Diffstat (limited to 'src/components/Header.astro')
-rw-r--r--src/components/Header.astro31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/components/Header.astro b/src/components/Header.astro
index 7f5dd31..5024060 100644
--- a/src/components/Header.astro
+++ b/src/components/Header.astro
@@ -18,7 +18,7 @@ import logo from '../../public/static/logo.svg'
src={logo}
alt="Logo"
id="navbar-logo"
- class="size-8 transition-all duration-300 md:size-12 md:saturate-100"
+ class="size-8 opacity-0 transition-all duration-300 md:size-12 md:saturate-100"
/>
<span
class="hidden h-full py-4 font-mono leading-none font-medium italic md:block md:text-3xl"
@@ -46,32 +46,28 @@ import logo from '../../public/static/logo.svg'
</div>
<script>
- const target = document.querySelector('#scroll-trigger')
- const nav = document.querySelector('#navbar') as HTMLDivElement
- const logo = document.querySelector('#navbar-logo') as HTMLImageElement
+ const initNavbarObserver = () => {
+ const target = document.querySelector('#scroll-trigger')
+ const nav = document.querySelector('#navbar') as HTMLDivElement
+ const logo = document.querySelector('#navbar-logo') as HTMLImageElement
+
+ if (!target) {
+ console.error(
+ "Observer Error: Target element '#scroll-trigger' not found in DOM.",
+ )
+ return
+ }
- if (!target) {
- console.error(
- "Observer Error: Target element '#scroll-trigger' not found in DOM.",
- )
- } else {
const observer = new IntersectionObserver(
(entries) => {
entries.forEach((entry) => {
- console.log('Intersection Ratio:', entry.intersectionRatio)
- console.log('Is Intersecting?:', entry.isIntersecting)
-
if (!entry.isIntersecting) {
- console.log('Trigger hit the top (Exited viewport)')
document.querySelector('#main-nav')?.classList.add('is-at-top')
logo.classList.remove('opacity-0', 'scale-0', 'w-0')
- nav.style.marginLeft = '0'
nav.style.justifyContent = 'space-between'
} else {
- console.log('Trigger is back in view')
document.querySelector('#main-nav')?.classList.remove('is-at-top')
logo.classList.add('opacity-0', 'scale-0', 'w-0')
- nav.style.marginLeft = '-1rem'
nav.style.justifyContent = 'center'
}
})
@@ -81,4 +77,7 @@ import logo from '../../public/static/logo.svg'
observer.observe(target)
}
+
+ window.addEventListener('load', initNavbarObserver)
+ document.addEventListener('astro:page-load', initNavbarObserver)
</script>