ハンバーガーメニューを表示時に、背景を固定させてスクロールさせないように指定したいです。
ハンバーガーメニューはHTML,CSSだけで実装しています。
【ハンバーガーメニュー】
<!-- ヘッダー --> <div class="header"> <a href="/top/index.html" class="header-top">PON DESIGN</a> <!-- ハンバーガーメニュー --> <input id="menu" type="checkbox"> <label for="menu" class="open menu-btn"><div class="line"></div><div class="line"></div><div class="line"></div></label> <label for="menu" class="back menu-btn"></label> <aside class="nav-menu"> <label for="menu" class="close">×</label> <!-- メニュー(SP) --> <nav class="drawer-content"> <ul class="drawer-list"> <li class="drawer-item"> <a class="link-item" href="/news/news.html">NEWS</a> </li> <li class="drawer-item"> <a class="link-item" href="/service/service.html">SERVICE</a> </li> <li class="drawer-item"> <a class="link-item" href="/works/works.html">WORKS</a> </li> <li class="drawer-item"> <a class="link-item" href="/company/company.html">COMPANY</a> </li> <li class="drawer-item"> <a class="link-item" href="/recruit/recruit.html">RECRUIT</a> </li> <li class="drawer-item"> <a class="link-item" href="/contact/contact.html">CONTACT</a> </li> </ul> </nav> </aside> </div>
ハンバーガーメニューの表示切替のトリガーになっている「open(三本線)」と「close(バツ印)」に「menu-btn」という共通のクラスを持たせて、以下のようにJQueryで記述しました。
$(function() { $('.menu-btn').click(function() { if($('body').hasClass('hidden')) { $('body').removeClass('hidden'); } else { $('body').addClass('hidden'); } }); });
「menu-btn」をクリックすると、overflow: hidden;を指定してある「hidden」というクラスを、bodyに対して付け外しするようにしたのですが、上手く効いていないようです。
また、メニューを表示するとページのトップまで勝手に戻ってしまうのですが、どうすれば同じ場所でメニューを表示させることができるでしょうか? 色々と調べたのですが、よく分かりませんでした。分かる方がおられましたら、教えてくださると助かります。宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/14 05:29
2021/04/14 05:35 編集
2021/04/14 06:17
2021/04/14 06:23
2021/04/14 06:23
2021/04/14 06:27
2021/04/14 06:27
2021/04/14 06:27
2021/04/14 06:30
2021/04/14 06:34
2021/04/14 06:36
2021/04/14 06:40
2021/04/14 06:42 編集
2021/04/14 06:49
2021/04/14 06:54
2021/04/14 06:58
2021/04/14 07:02
2021/04/14 07:26
2021/04/14 07:27
2021/04/14 07:30
2021/04/14 07:32
2021/04/14 07:33