diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 02537b65..5c98723c 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -79,13 +79,27 @@ $isOpen = false; } + let navOpening = false; document.addEventListener('click', (event) => { + // Ignore clicks on the navbar toggler + if (event.target?.className?.includes('navbar-toggler')) return; + // Ignore clicks on the dropdown toggle menu items + if (event.target?.className?.includes('nav-link') && event.target?.className?.includes('dropdown-toggle')) { + navOpening = true; + setTimeout(() => { + navOpening = false; + }, 100); + return; + } closeNav(); }); document.addEventListener('keydown', (event) => { closeNav(); }); + window.addEventListener('scroll', (event) => { + if (document.getElementsByClassName('navbar-collapse collapsing').length > 0) return; + if (navOpening) return; closeNav(); });