Initial StaySense landing page
This commit is contained in:
commit
289b808771
15 changed files with 844 additions and 0 deletions
29
script.js
Normal file
29
script.js
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
const toggle = document.getElementById('navToggle');
|
||||
const mobile = document.getElementById('navMobile');
|
||||
|
||||
function closeMobileMenu() {
|
||||
if (!toggle || !mobile) return;
|
||||
toggle.setAttribute('aria-expanded', 'false');
|
||||
toggle.setAttribute('aria-label', 'Menü öffnen');
|
||||
mobile.hidden = true;
|
||||
}
|
||||
|
||||
toggle?.addEventListener('click', () => {
|
||||
const expanded = toggle.getAttribute('aria-expanded') === 'true';
|
||||
toggle.setAttribute('aria-expanded', String(!expanded));
|
||||
toggle.setAttribute('aria-label', expanded ? 'Menü öffnen' : 'Menü schließen');
|
||||
mobile.hidden = expanded;
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', (event) => {
|
||||
if (event.key === 'Escape') closeMobileMenu();
|
||||
});
|
||||
|
||||
document.addEventListener('click', (event) => {
|
||||
if (!mobile || mobile.hidden) return;
|
||||
if (!mobile.contains(event.target) && !toggle?.contains(event.target)) closeMobileMenu();
|
||||
});
|
||||
|
||||
mobile?.querySelectorAll('a').forEach((a) => {
|
||||
a.addEventListener('click', closeMobileMenu);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue