JavaScript

【サンプルあり】JavaScriptでハンバーガーメニューを実装する方法

ピュアなJavaScriptを使用してサンプルのようなハンバーガーメニューを作りました。
使えたらコピペしてください。

解説

まずHTMLとSCSSでデフォルトの状態を作成します。

Codepen埋め込み内にある.containerはハンバーガーメニューを上下中央に配置するための要素なのでここでは省きます。

<div class="menu-btn">
    <span></span>
    <span></span>
    <span></span>
 </div>
.menu-btn {
  position: relative;
  width: 80px;
  height: 80px;
  background: #000;
  cursor: pointer;
  span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 50px;
    height: 2px;
    background: #fff;
    transition: 0.3s ease transform, 0.3s ease opacity;
    &:first-child {
      transform: translate(-50%, -13px);
    }
    &:last-child {
      transform: translate(-50%, 12px);
    }
  }
  &.active {
    span {
      &:first-child {
        transform: translate(-50%, 0) rotate(
45deg);
      }
      &:nth-child(2) {
        opacity: 0;
      }
      &:last-child {
        transform: translate(-50%, 0) rotate(
-45deg);
      }
    }
  }
}

次に.menu-btnに任意のクラス(ここでは.active)を付与したときの状態を作成します。
(下の埋め込みはキャプチャ画像です。)

続いてJavaScriptで.menu-btnをクリックした際に.activeがON/OFFするようにしてみましょう。

const menuBtn = document.querySelector('.menu-btn');

menuBtn.addEventListener('click', function() {
  this.classList.toggle('active');
});

これで完成です!
ほぼCSSでしたね👍