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

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

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

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

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

Q&A

解決済

2回答

3337閲覧

ハンバーガーメニューのリンク(ページ内)をクリックしたら閉じたい

tt_360

総合スコア29

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

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

0グッド

0クリップ

投稿2019/01/07 01:48

前提・実現したいこと

ハンバーガーメニューを初めて作った初心者です。
なんとかできたと思っったのですが、最後の最後に修正が入ってしまい困ってます。

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

ハンバーガーメニューのリンクをクリックすると、現状リンク先には飛ぶのですが、ハンバーガーメニューが閉じないという状態です。 初歩的な質問かと思いますが、わかる方教えていただけないでしょうか?お願いします! 該当する htmlとCSSとJavascriptを公開します!

該当のソースコード

<!doctype html> <html><head> <meta charset="utf-8"> <title>ハンバーガーメニュー</title> <link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/media640.css" media="screen and (max-width:640px)"> <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript" src="js/menu.js"></script> </head> <body> <header class="order2"> <h1><img src="img/logo.gif" alt="" class="logo"></h1> <nav class="globalMenuSp"> <ul> <li class="line_3 line_none"> <div class="menu"><a href="index.html#tenmei_catalog">カタログ</a></div> <ul class="subMenu"> <li><a href="index.html#tenmei1_catalog">-&nbsp;店名1</a></li> <li><a href="index.html#tenmei2_catalog">-&nbsp;店名2</a></li> <li><a href="index.html#tenmei3_catalog1">-&nbsp;店名3</a></li> <li><a href="index.html#sale">-&nbsp;セール</a></li> </ul> </li> <li class="line_3"> <div class="menu"><a href="index.html#zaiko-shyuhin_data">在庫情報</a></div> <ul class="subMenu"> <li><a href="index.html#zaiko-shyuhin_data">-&nbsp;在庫状況</a></li> </ul> </li> <li class="line_3"> <div class="menu"><a href="index.html#web-fax_oder">オーダー</a></div> <ul class="subMenu"> <li><a href="index.html#web_oder">-&nbsp;ウェブオーダー</a></li> <li><a href="index.html#fax_oder">-&nbsp;FAXオーダーシート<br>&nbsp;&nbsp;ダウンロード</a></li> </ul> </li> <li class="line_3"><div class="menu2"><a href="index.html#new_transaction">新規お取引について</a></div></li> <li><div class="menu2"><a href="index.html#company_outline">弊社について</a></div></li> <li class="line_2"><div class="menu2" style="border: none;"><a href="index.html#otoiawase">お問い合わせ</a></div></li> </ul> </nav> <div class="navToggle"> <span></span><span></span><span></span><span>menu</span> </div> </header> </body> </html>
@charset "utf-8"; /* CSS Document */ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote{margin:0;padding:0;} h1,h2,h3,h4,h5{font-size:100%;} ol,ul{list-style:none;} body{ font-family:"MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"; width:100%; text-align: center; background-color:#97AF62; } a:link {color:#000000; text-decoration: none;} /*未訪問のリンクの色*/ a:visited {color:#000000;} /*訪問済みのリンクの色*/ a:hover {opacity: 0.5;} /*カーソルが乗っているリンクの色*/ a:active {opacity: 0.5;} /*クリック中のリンクの色*/ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .wrapper { padding: 1%;  width: 100%; text-align: center; max-width: 1280px; /* 追加:幅は最大で1280pxまで広がるようにする */ margin: 0 auto; } .wrapper p { margin: 0; } .content { display: flex; padding: 20px 0; } .main { flex: 1 0 auto; display: flex; align-items: center; justify-content: center; height: 2000px; margin-right: 10px; background: #ccc; background: linear-gradient(to bottom, #eeeeee 0%,#B7EAE0 100%); } .side { display: flex; align-items: center; justify-content: center; position: -webkit-sticky; position: sticky; top: 0px; width: 220px; height: 710px; background: #30b298; } #l_main{ background-color: #AB6D6E; width: 220px; } aside{ } #r_main{ background-color: #94C6EB; -webkit-flex: 1; flex: 1; } /*ヘッダー*/ header{ } h1{ margin-bottom: 30px; margin-top: 10px; } .logo{ width: 220px; } header nav { text-align: left; } header nav ul{ } header nav ul li .menu{ position: relative; padding: 10px; color: #000000; border-bottom: 1px dotted #000000; list-style: none; text-align:left; font-size: 0.9em; } header nav ul li .menu a{ text-decoration: none; font-weight: bold; } header nav ul li .menu2{ position: relative; padding: 10px; color: #000000; border-bottom: 1px solid #000000; list-style: none; text-align:left; font-size: 0.9em; } header nav ul li .menu2 a{ text-decoration: none; font-weight: bold; } .subMenu { text-align: left; } .subMenu li { } .subMenu li a { font-size: 0.9em; padding: 3px 10px 3px 30px; text-decoration: none; } #nav_toggle{ display: none; } .line_1{ border-top: solid 1px #000000; } .line_2{ border-bottom: solid 1px #000000; } .line_3{ border-top: solid 1px #000000; } .line4{ border-bottom: 1px dotted #000000; } .subMenu li .line_3{ border-bottom: none; } .line_none{ border-top:none; } /*ナビ*/ nav.globalMenuSp { position: fixed; z-index: 2; top: 0; left: 0; background-color:rgba(255,255,255,0.7); color: #000; text-align: center; transform: translateY(-100%); transition: all 0.6s; width: 95%; padding-left: 30px; height: 496px; } nav.globalMenuSp ul { margin: 0 auto; padding: 0; width: 95%; height: 100%; overflow: auto; -webkit-overflow-scrolling: touch; } nav.globalMenuSp ul li { font-size: 1.1em; list-style-type: none; padding: 0; width: 95%; } /* 最後はラインを描かない */ nav.globalMenuSp ul li:last-child { padding-bottom: 0; /*border-bottom: none;*/ } nav.globalMenuSp ul li a { display: block; color: #000; /*padding: 1em 0;*/ } /* このクラスを、jQueryで付与・削除する */ nav.globalMenuSp.active { transform: translateY(0%); } /*ハンバーガー用*/ .navToggle { display: block; position: fixed; /* bodyに対しての絶対位置指定 */ right: 13px; top: 12px; width: 42px; height: 51px; cursor: pointer; z-index: 3; background: #666; text-align: center; letter-spacing: normal; } .navToggle span { display: block; position: absolute; /* .navToggleに対して */ width: 30px; border-bottom: solid 3px #eee; -webkit-transition: .35s ease-in-out; -moz-transition: .35s ease-in-out; transition: .35s ease-in-out; left: 6px; } .navToggle span:nth-child(1) { top: 9px; } .navToggle span:nth-child(2) { top: 18px; } .navToggle span:nth-child(3) { top: 27px; } .navToggle span:nth-child(4) { border: none; color: #eee; font-size: 9px; font-weight: bold; top: 28px; } /*(タップした後)CSS*/ /* 最初のspanをマイナス45度に */ .navToggle.active span:nth-child(1) { top: 18px; left: 6px; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); transform: rotate(-45deg); } /* 2番目と3番目のspanを45度に */ .navToggle.active span:nth-child(2), .navToggle.active span:nth-child(3) { top: 18px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); transform: rotate(45deg); }
$(function() { $('.navToggle').click(function() { $(this).toggleClass('active'); if ($(this).hasClass('active')) { $('.globalMenuSp').addClass('active'); } else { $('.globalMenuSp').removeClass('active'); } }); });

試したこと

これをリンクをクリックしたら閉じたいのですが、いろいろなサイトのヒントをみて真似してもどうしてもできません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2019/01/07 01:54

CSSはcss/media640.cssとcss/media.cssがあるようですが、提示されているのはどちらでしょうか。両方提示されたほうが再現確認もしやすいのですが。
tt_360

2019/01/07 02:13

すみません。media640.cssはないです。 消し忘れていました。ないものとして考えてください。 申し訳ございません!
m.ts10806

2019/01/07 02:14

質問は編集できるので精査をお願いします
guest

回答2

0

メニュー内のリンクをクリックしたら .active を解除する処理を追加します。

javascript

1$('.globalMenuSp a').click(function(){ 2 $('.navToggle, .globalMenuSp').removeClass('active'); 3});

投稿2019/01/07 02:01

CODEISLE

総合スコア251

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

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

tt_360

2019/01/07 02:17

閉じました!!何日かけてもできなかったのですが、助かりました!本当にありがとうございます(T_T)
guest

0

ベストアンサー

これでどうでしょう。

js

1 $('.globalMenuSp a').click(function() { 2 $('.navToggle').trigger('click'); 3 });

【.trigger() | jQuery API Documentation】
http://api.jquery.com/trigger/

投稿2019/01/07 02:04

kei344

総合スコア69400

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

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

tt_360

2019/01/07 02:35

閉じました!!何日かけてもできなかったのですが、助かりました!本当にありがとうございます(T_T)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問