Improve mobile menu functionality in Header component: add toggle behavior, close menu on link click, and adjust CSS for better visibility.

This commit is contained in:
becarta
2025-06-19 00:29:41 +02:00
parent f530b84499
commit 65713e5350

View File

@@ -104,7 +104,7 @@ import '../styles/main.css';
</div> </div>
<!-- Mobile Navigation --> <!-- Mobile Navigation -->
<div id="mobile-menu" class="mobile-menu"> <div id="mobile-menu" class="mobile-menu mobile-menu-hidden">
<div class="mobile-menu-content"> <div class="mobile-menu-content">
<a href="/home" class="mobile-nav-link"> <a href="/home" class="mobile-nav-link">
🏠 Home 🏠 Home
@@ -133,6 +133,7 @@ import '../styles/main.css';
const menu = document.getElementById('mobile-menu'); const menu = document.getElementById('mobile-menu');
if (menu) { if (menu) {
menu.classList.toggle('mobile-menu-hidden'); menu.classList.toggle('mobile-menu-hidden');
console.log('Mobile menu toggled:', !menu.classList.contains('mobile-menu-hidden'));
} }
} }
@@ -148,6 +149,19 @@ import '../styles/main.css';
} }
}); });
// Close mobile menu when clicking on a mobile nav link
document.addEventListener('DOMContentLoaded', function() {
const mobileNavLinks = document.querySelectorAll('.mobile-nav-link');
mobileNavLinks.forEach(link => {
link.addEventListener('click', function() {
const menu = document.getElementById('mobile-menu');
if (menu) {
menu.classList.add('mobile-menu-hidden');
}
});
});
});
// Add active state to current page // Add active state to current page
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
const currentPath = window.location.pathname; const currentPath = window.location.pathname;
@@ -537,12 +551,16 @@ import '../styles/main.css';
/* Mobile Menu */ /* Mobile Menu */
.mobile-menu { .mobile-menu {
display: block; display: none;
background: white; background: white;
border-top: 1px solid rgba(229, 229, 229, 0.5); border-top: 1px solid rgba(229, 229, 229, 0.5);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
} }
.mobile-menu:not(.mobile-menu-hidden) {
display: block;
}
.mobile-menu-hidden { .mobile-menu-hidden {
display: none !important; display: none !important;
} }