/* ============================================================ Local Business Website — Base JavaScript Template Mobile nav toggle, header scroll shrink, active page detection. Copy as js/main.js — zero dependencies, vanilla JS. ============================================================ */ document.addEventListener('DOMContentLoaded', function () { /* ---- Elements ---- */ var hamburger = document.querySelector('.hamburger'); var mobileNav = document.querySelector('.mobile-nav'); var header = document.querySelector('.site-header'); /* ---- Mobile Nav Toggle ---- */ if (hamburger && mobileNav) { hamburger.addEventListener('click', function () { var isOpen = mobileNav.classList.toggle('open'); hamburger.classList.toggle('active'); hamburger.setAttribute('aria-expanded', isOpen); document.body.style.overflow = isOpen ? 'hidden' : ''; }); /* Close nav when a link is tapped */ var navLinks = mobileNav.querySelectorAll('a'); navLinks.forEach(function (link) { link.addEventListener('click', function () { mobileNav.classList.remove('open'); hamburger.classList.remove('active'); hamburger.setAttribute('aria-expanded', 'false'); document.body.style.overflow = ''; }); }); } /* ---- Header Shrink on Scroll ---- */ if (header) { window.addEventListener('scroll', function () { if (window.scrollY > 80) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } }, { passive: true }); } /* ---- Active Nav Link Highlighting ---- */ (function () { var currentPath = window.location.pathname.replace(/\/$/, '') || '/'; var navLinks = document.querySelectorAll('.main-nav a, .footer-nav a'); navLinks.forEach(function (link) { var href = link.getAttribute('href'); if (!href) return; var linkPath = href.replace(/\/$/, '') || '/'; if (linkPath === '/' && currentPath !== '/') return; if (currentPath.startsWith(linkPath) && linkPath !== '/') { link.classList.add('active'); } else if (currentPath === '/' && linkPath === '/') { link.classList.add('active'); } }); })(); /* ---- Smooth Scroll for Anchor Links ---- */ document.querySelectorAll('a[href^="#"]').forEach(function (anchor) { anchor.addEventListener('click', function (e) { var target = document.querySelector(this.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); });