@@ -0,0 +1,23 @@
|
||||
(() => {
|
||||
const toggle = document.querySelector('[data-nav-toggle]');
|
||||
const sidebar = document.querySelector('[data-sidebar]');
|
||||
if (!toggle || !sidebar) return;
|
||||
|
||||
const close = () => {
|
||||
sidebar.classList.remove('open');
|
||||
toggle.setAttribute('aria-expanded', 'false');
|
||||
};
|
||||
|
||||
toggle.addEventListener('click', () => {
|
||||
const open = sidebar.classList.toggle('open');
|
||||
toggle.setAttribute('aria-expanded', String(open));
|
||||
});
|
||||
document.addEventListener('keydown', (event) => {
|
||||
if (event.key === 'Escape') close();
|
||||
});
|
||||
document.addEventListener('click', (event) => {
|
||||
if (sidebar.classList.contains('open') && !sidebar.contains(event.target) && !toggle.contains(event.target)) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user