25 lines
755 B
JavaScript
25 lines
755 B
JavaScript
class ToggleMenuButton extends HTMLElement {
|
|
connectedCallback() {
|
|
this.addEventListener('click', this.onClick.bind(this))
|
|
const windowsChangeEvent = ('onorientationchange' in window) ? 'orientationchange':'resize';
|
|
window.addEventListener(windowsChangeEvent, this.close.bind(this))
|
|
}
|
|
|
|
get targetElement() {
|
|
const targetElementId = this.getAttribute('target')
|
|
const targetElement = document.getElementById(targetElementId)
|
|
console.assert(targetElement !== undefined)
|
|
return targetElement
|
|
}
|
|
|
|
onClick(evt) {
|
|
this.targetElement.classList.toggle('nav__open')
|
|
evt.preventDefault()
|
|
}
|
|
|
|
close() {
|
|
this.targetElement.classList.remone('nav__open')
|
|
}
|
|
}
|
|
|