Skip to content

Instantly share code, notes, and snippets.

@ImKubass
Last active January 23, 2023 08:27
Show Gist options
  • Save ImKubass/9b5358f03d4fda6faa7b90a2018a2d2e to your computer and use it in GitHub Desktop.
Save ImKubass/9b5358f03d4fda6faa7b90a2018a2d2e to your computer and use it in GitHub Desktop.
navigation handle
const mainNav = document.querySelector(".main-header__nav")
const overlay = document.querySelector(".c-overlay")
const closers = document.querySelectorAll(".--js-main-nav-closer")
const openers = document.querySelectorAll(".--js-main-nav-opener")
const togglers = document.querySelectorAll(".--js-main-nav-toggler")
const closeMenu = (event: Event) => {
event.preventDefault()
mainNav?.classList.remove("--open")
overlay?.classList.remove("--show")
document.documentElement.style.setProperty("overflow", null)
}
const openMenu = (event: Event) => {
event.preventDefault()
mainNav?.classList.add("--open")
overlay?.classList.add("--show")
document.documentElement.style.setProperty("overflow", "hidden")
}
const toggleMenu = (event: Event) => { mainNav?.classList.contains("--open") ? closeMenu(event) : openMenu(event) }
closers.forEach(closer => { closer.addEventListener("click", closeMenu) })
openers.forEach(opener => { opener.addEventListener("click", openMenu) })
togglers.forEach(toggler => { toggler.addEventListener("click", toggleMenu) })
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment