Skip to content
Snippets Groups Projects
mobile-menu.js 1.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • class MobileMenu {
        static selector() {
            return '.js-mobile-menu-toggle';
        }
    
    
        constructor(node, closeButton, mobileMenu, search) {
    
            this.closeButton = closeButton;
            this.mobileMenu = mobileMenu;
            this.search = search;
    
    
            this.bindEventListeners();
        }
    
        bindEventListeners() {
            this.node.click(this.toggle.bind(this));
    
            this.closeButton.click(this.toggle.bind(this));
    
            // toggle mobile menu
            this.mobileMenu[0].classList.toggle('is-visible');
    
    
            // check if search exists
            if (document.body.contains(this.search[0])) {
                // reset the search whenever the mobile menu is toggled
                if(this.search[0].classList.contains('is-visible')){
                    this.search[0].classList.toggle('is-visible');
                    document.querySelector('.header__inner--menu-open').classList.toggle('header__inner--search-open');
                }
    
            }
    
            // reset the search show/hide icons
    
            if(this.mobileMenu[0].classList.contains('is-visible') && document.body.contains(this.search[0])){
    
                document.querySelector('.header__icon--open-search-menu-closed').classList.remove('is-hidden');
                document.querySelector('.header__icon--close-search-menu-closed').classList.remove('is-unhidden');
            }