質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

515閲覧

スマホ用ハンバーガーメニューの開閉について

cinnamonbunny

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/03/28 07:15

編集2019/03/28 07:27

前提・実現したいこと

レスポンシブのスマホ用に、ハンバーガーメニューを設置したいと思っています。

発生している問題・エラーメッセージ

ハンバーガーメニュー内のページ内リンクをクリックしてもメニューが開いたまま

該当のソースコード

HTML

1<div id="nav-drawer"> 2 <input id="nav-input" type="checkbox" class="nav-unshown"> 3 <label id="nav-open" for="nav-input"><span></span></label> 4 <label class="nav-unshown" id="nav-close" for="nav-input"></label> 5 6 <div id="nav-content"> 7 <ul> 8 <li><a href="#sec01">テキスト</a></li> 9 <li><a href="#sec02">テキスト</a></li> 10 <li><a href="#sec03">テキスト</a></li> 11 <li><a href="#sec04">テキスト</a></li> 12 <li><a href="#sec05">テキスト</a></li> 13 </ul> 14 </div> 15 16</div> 17 18

CSS

1#nav-drawer { 2 position: relative; 3} 4 5/*チェックボックス等は非表示に*/ 6.nav-unshown { 7 display:none; 8} 9 10/*アイコンのスペース*/ 11#nav-open { 12 display: inline-block; 13 width: 30px; 14 height: 22px; 15 vertical-align: middle; 16} 17 18/*ハンバーガーアイコンをCSSだけで表現*/ 19#nav-open span, #nav-open span:before, #nav-open span:after { 20 position: absolute; 21 height: 3px;/*線の太さ*/ 22 width: 25px;/*長さ*/ 23 border-radius: 3px; 24 background: #555; 25 display: block; 26 content: ''; 27 cursor: pointer; 28} 29#nav-open span:before { 30 bottom: -8px; 31} 32#nav-open span:after { 33 bottom: -16px; 34} 35 36/*閉じる用の薄黒カバー*/ 37#nav-close { 38 display: none;/*はじめは隠しておく*/ 39 position: fixed; 40 z-index: 99; 41 top: 0;/*全体に広がるように*/ 42 left: 0; 43 width: 100%; 44 height: 100%; 45 background: black; 46 opacity: 0; 47 transition: .3s ease-in-out; 48} 49 50/*中身*/ 51#nav-content { 52 overflow: auto; 53 position: fixed; 54 top: 0; 55 left: 0; 56 z-index: 9999;/*最前面に*/ 57 width: 90%;/*右側に隙間を作る(閉じるカバーを表示)*/ 58 max-width: 330px;/*最大幅(調整してください)*/ 59 height: 100%; 60 background: #fff;/*背景色*/ 61 transition: .3s ease-in-out;/*滑らかに表示*/ 62 -webkit-transform: translateX(-105%); 63 transform: translateX(-105%);/*左に隠しておく*/ 64} 65 66/*チェックが入ったらもろもろ表示*/ 67#nav-input:checked ~ #nav-close { 68 display: block;/*カバーを表示*/ 69 opacity: .5; 70} 71 72#nav-input:checked ~ #nav-content { 73 -webkit-transform: translateX(0%); 74 transform: translateX(0%);/*中身を表示(右へスライド)*/ 75 box-shadow: 6px 0 25px rgba(0,0,0,.15); 76} 77 78@media screen and (min-width:640px) { 79 #nav-open { 80 display:none; 81 } 82} 83

Javascript

1$(function(){ 2 $('#nav-input a').on('click', function() { 3 ('#nav-input,#nav-close').toggleClass('checked'); 4 document.getElementById("nav-input,nav-close").style.display ="none"; 5 }) 6 }); 7

試したこと

JavaScriptを調べて試してみたのですが、メニューが閉じても再度開けなくなったりして
わからなくなってしまいました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/03/28 07:22

試されたJavaScriptを質問文に追記してください。
cinnamonbunny

2019/03/28 07:29

消してしまったため、あやふやなのですが追記しました。
guest

回答1

0

ベストアンサー

こうではないでしょうか。

js

1$(function(){ 2 $('#nav-content a').on('click', function() { // 修正しました 3 $('#nav-input').prop('checked', false); 4 }) 5}); 6```**動くサンプル:**[https://jsfiddle.net/pq15hmzu/](https://jsfiddle.net/pq15hmzu/) 7 8--- 9 10【jQuery でのチェックボックスの操作と、チェック状態の取得 | WWWクリエイターズ】 11[http://www-creators.com/archives/4479](http://www-creators.com/archives/4479)

投稿2019/03/28 07:32

編集2019/03/28 07:41
kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cinnamonbunny

2019/03/28 07:36

ページ内リンクには問題なく飛ぶのですが、そちらを入力してもメニュー開いたままになります。
kei344

2019/03/28 07:41

ミスがあったため修正しました。jQuery が読み込まれている環境であれば動くと思います。
cinnamonbunny

2019/03/28 07:45

希望通りに動きました! 昨日から悩んでいたためとても助かります。 的確で素早い回答ありがとうございました。
x_x

2019/03/28 07:49

'#nav-content a' だし、$も抜けているかと
kei344

2019/03/28 07:52

To: x_xさん 修正済みだと思うのですが、反映されていませんか?
x_x

2019/03/28 07:53

更新前見てました。 反映遅いみたいです
x_x

2019/03/28 07:55

直前にリロードしたんですけどね……
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問