2021-05-04

【JavaScript】ハンバーガーメニュー作成方法。コピペで出来る。

JavaScript,プログラミング

こんにちは、ダイキです。
今回は JavaScript で、ハンバーガーメニューを作成してみます。
検索したら、jQuery の情報ばかり。個人的には JavaScript で書きたいので、メモとして残しておきます。

HTMLです。【JavaScript】ハンバーガーメニュー作成方法。コピペで出来る。


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>JavaScript</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="openBtn">
    <span></span>
    <span></span>
    <span></span>
  </div>

  <script src="script.js"></script>
</body>
</html>

CSSです。【JavaScript】ハンバーガーメニュー作成方法。コピペで出来る。


@charset "utf-8";

.openBtn {
  position: relative;
  background-color: #333;
  cursor: pointer;
  width: 50px;
  height: 50px;
  margin: 20rem auto;
  border-radius: 5px;
}

.openBtn span {
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 14px;
  height: 3px;
  border-radius: 2px;
  background-color: #fff;
  width: 45%;
}

.openBtn span:nth-of-type(1) {
  top: 15px;
}
.openBtn span:nth-of-type(2) {
  top: 23px;
}
.openBtn span:nth-of-type(3) {
  top: 31px;
}

.openBtn.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 30%;
}
.openBtn.active span:nth-of-type(2) {
  opacity: 0;
}
.openBtn.active span:nth-of-type(3) {
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 30%;
}

JavaScriptです。【JavaScript】ハンバーガーメニュー作成方法。コピペで出来る。


'use strict';

{
  const openBtn = document.getElementsByClassName('openBtn')[0];
  openBtn.addEventListener('click', () => {
    openBtn.classList.toggle('active');
  });
  
}