Create script.js
Browse files
script.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(function() {
|
| 2 |
+
const menuBtn = document.getElementById('inlineMenuBtn');
|
| 3 |
+
const menu = document.getElementById('inlineMenu');
|
| 4 |
+
const topLink = document.getElementById('scrollTopLink');
|
| 5 |
+
|
| 6 |
+
function closeMenu() {
|
| 7 |
+
if (!menu) return;
|
| 8 |
+
menu.classList.remove('open');
|
| 9 |
+
menu.setAttribute('aria-hidden', 'true');
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
if (menuBtn && menu) {
|
| 13 |
+
menuBtn.addEventListener('click', function(e) {
|
| 14 |
+
e.preventDefault();
|
| 15 |
+
const isOpen = menu.classList.contains('open');
|
| 16 |
+
if (isOpen) {
|
| 17 |
+
closeMenu();
|
| 18 |
+
} else {
|
| 19 |
+
menu.classList.add('open');
|
| 20 |
+
menu.setAttribute('aria-hidden', 'false');
|
| 21 |
+
}
|
| 22 |
+
});
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
if (topLink) {
|
| 26 |
+
topLink.addEventListener('click', function(e) {
|
| 27 |
+
e.preventDefault();
|
| 28 |
+
window.scrollTo({ top: 0, behavior: 'smooth' });
|
| 29 |
+
closeMenu();
|
| 30 |
+
});
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
// Close when clicking outside
|
| 34 |
+
document.addEventListener('click', function(e) {
|
| 35 |
+
if (!menu || !menuBtn) return;
|
| 36 |
+
if (!menu.contains(e.target) && !menuBtn.contains(e.target)) {
|
| 37 |
+
closeMenu();
|
| 38 |
+
}
|
| 39 |
+
});
|
| 40 |
+
|
| 41 |
+
// Accessibility: close on Escape
|
| 42 |
+
document.addEventListener('keydown', function(e) {
|
| 43 |
+
if (e.key === 'Escape') closeMenu();
|
| 44 |
+
});
|
| 45 |
+
})();
|