javascript 移动菜单JS - ES6

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 移动菜单JS - ES6相关的知识,希望对你有一定的参考价值。

/**
 * Mobile Menu Top Level Reveal
 *
 */
export class MobileMenuMain {
  /**
   * Constructor
   *
   */
  constructor() {
    this.burger = document.querySelector('[data-js-mobile-burger]');
    this.mainMenu = document.querySelector('.main-nav__menu');
    this.burgerActiveClass = 'main-header__hamburger--active';
    this.menuActiveClass = 'main-nav__menu--active';
    this.activeState = false;
    this.burger.addEventListener('click', event => this.toggle(event));
  }

  /**
   * Opens the mobile menu
   *
   */
  open() {
    this.burger.classList.add(this.burgerActiveClass);
    this.mainMenu.classList.add(this.menuActiveClass);
    this.activeState = true;
  }

  /**
   * Closes the mobile menu
   *
   */
  close() {
    this.burger.classList.remove(this.burgerActiveClass);
    this.mainMenu.classList.remove(this.menuActiveClass);
    this.activeState = false;
  }

  /**
   * Toggle the mobile menu
   * @param {Event} event - Prevents the default action of the anchor
   */
  toggle(event) {
    event.preventDefault();
    if (this.activeState) {
      this.close();
    } else {
      this.open();
    }
  }
}

以上是关于javascript 移动菜单JS - ES6的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap.js 未在 Rails 应用程序中切换移动菜单

javascript 具有多个菜单的菜单功能 - ES6类

一个轻量级、响应迅速、类似移动设备的导航菜单插件

Node.js资讯 | ES6 下的函数式:递归模式;JavaScript 深拷贝性能分析

javascript es6 object mixin #js#es6 #object

javascript es6 clone object #js#es6 #object