前提・実現したいこと
HTML・CSS・jQueryでふわっと出てくるハンバーガーメニューを作成中です。
作成してみたのですが、ハンバーガーメニューを押しても隠れているメニューが表示されません。
様々なサイトを見てみたのですが中々解決方法がわからなかった為、恐縮ではありますがご質問させて頂きます…。
発生している問題・エラーメッセージ
ハンバーガーメニューを押しても隠れているメニューが表示されない
該当のソースコード
HTML
<div class="container"> <div class="header-menu"> <div class="header-left"> <h1>Hiroto Morita</h1> <!-- <i class="fas fa-bars fa-lg menu-icon"></i> --> <div class="hamburger"> <span></span> <span></span> <span></span> </div> </div> <nav class="header-right"> <ul class="nav-list"> <li><a href="#home">Home</a></li> <li><a href="#about">About</a></li> <li><a href="#service">Service</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> </div> </div> </header> コード
CSS
.hamburger { display: block; position: fixed; z-index: 3; right: 13px; top: 12px; width: 42px; height: 42px; cursor: pointer; text-align: center; } .hamburger span { display: block; position: absolute; width: 30px; height: 2px; left: 6px; background: #000; -webkit-transition: 0.3s ease-in-out; -moz-transition: 0.3s ease-in-out; transition: 0.3s ease-in-out; } .hamburger span:nth-child(1) { top: 10px; } .hamburger span:nth-child(2) { top: 20px; } .hamburger span:nth-child(3) { top: 30px; } /* ナビ開いてる時のボタン */ .hamburger.active span:nth-child(1) { top: 16px; left: 6px; background: #fff; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); transform: rotate(-45deg); } .hamburger.active span:nth-child(2), .hamburger.active span:nth-child(3) { top: 16px; background: #fff; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); transform: rotate(45deg); } nav.header-right { position: fixed; z-index: 2; top: 0; left: 0; color: #fff; background: rgba(0, 0, 0, 0.7); text-align: center; width: 100%; opacity: 0; transition: opacity .6s ease, visibility .6s ease; } nav.header-right ul { margin: 0 auto; padding: 0; width: 100%; } nav.header-right ul li { list-style-type: none; padding: 0; width: 100%; transition: .4s all; } nav.header-right ul li:last-child { padding-bottom: 0; } nav.header-right ul li:hover { background: #ddd; } nav.header-right ul li a { display: block; color: #fff; padding: 1em 0; text-decoration: none; } /* このクラスを、jQueryで付与・削除する */ nav.header-right.active { opacity: 100; } コード
jQuery
$(window).scroll(function () { $(".slide").each(function () { var imgPos = $(this).offset().top; var scroll = $(window).scrollTop(); var windowHeight = $(window).height(); if (scroll > imgPos - windowHeight + windowHeight / 4) { $(this).addClass("effect-scroll"); } }); }); jQuery(window).scroll(); /* ハンバーガーメニュー */ $('.hamburger').click(function () { $(this).toggleClass('active'); if ($(this).hasClass('active')) { $('.header-right').addClass('active'); } else { $('.header-right').removeClass('active'); } }); }); コード
ご教示頂けますと幸いです…。
回答1件
あなたの回答
tips
プレビュー