JQueryを使った最もシンプルなプルダウン型ハンバーガーメニューの実装方法

HTML

<div class="toggle-btn">
  <span></span>
  <span></span>
  <span></span>
</div>
<nav class="toggle-menu close">
  <ul>
    <li><a href="">メニュー1</a></li>
    <li><a href="">メニュー2</a></li>
    <li><a href="">メニュー3</a></li>
  </ul>
</nav>

CSS

.toggle-btn {
  display: block;
  border-radius:2px;
  position: fixed;
  right: 13px;
  top: 12px;
  width: 42px;
  height: 40px;
  cursor: pointer;
  z-index: 3;
}
.toggle-btn span {
  display: block;
  position: absolute;
  width: 30px;
  border-bottom: solid 5px #ccc;
  -webkit-transition: .35s ease-in-out;
  -moz-transition: .35s ease-in-out;
  transition: .35s ease-in-out;
  left: 6px;
}
.toggle-btn span:nth-child(1) {
  top: 9px;
}
.toggle-btn span:nth-child(2) {
  top: 18px;
}
.toggle-btn span:nth-child(3) {
  top: 27px;
}
.toggle-btn.open span:nth-child(1) {
  top: 18px;
  left: 6px;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.toggle-btn.open span:nth-child(2),
.toggle-btn.open span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
}

.toggle-menu {
  background:#eee;
  padding:15px;
}
.close {
  display:none;
}

JQuery

<script type="text/javascript">
$(function() {
  $('.toggle-btn').click(function() {
    $(this).toggleClass('open');
    $(this).next().slideToggle();
    $('.toggle-btn').not($(this)).next().slideUp();
    $('.toggle-btn').not($(this)).removeClass('open');
  });
});
</script>

執筆者情報

田所雄介

田所雄介

Web制作事務所タドワークス代表。Webマーケティングをベースにしたコンテンツ設計からWeb開発まで、幅広い実践的スキルを持つジェネラリスト。
https://tadworks.jp/