-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmenu.js
More file actions
36 lines (33 loc) · 1.21 KB
/
menu.js
File metadata and controls
36 lines (33 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Mobile menu functionality
document.addEventListener("DOMContentLoaded", function () {
const menuToggle = document.querySelector(".mobile-menu-toggle");
const mainNav = document.querySelector(".main-nav");
const menuOverlay = document.querySelector(".menu-overlay");
const navLinks = document.querySelectorAll(".main-nav .nav-link");
// Toggle menu function
function toggleMenu() {
menuToggle.classList.toggle("active");
mainNav.classList.toggle("active");
menuOverlay.classList.toggle("active");
// Add slide animation class
if (mainNav.classList.contains("active")) {
mainNav.classList.add("slide-down");
document.body.style.overflow = "hidden";
} else {
mainNav.classList.remove("slide-down");
document.body.style.overflow = "";
}
}
// Event listeners
menuToggle.addEventListener("click", toggleMenu);p
menuOverlay.addEventListener("click", toggleMenu);
// Close menu when a nav link is clicked
navLinks.forEach((link) => {
link.addEventListener("click", () => {
menuToggle.classList.remove("active");
mainNav.classList.remove("active");
menuOverlay.classList.remove("active");
document.body.style.overflow = "";
});
});
});