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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

HTML

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

CSS

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

Q&A

解決済

2回答

270閲覧

toggleを使って下層ページのメニューを表示させる

Yucchi

総合スコア29

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/02/05 07:35

jQueryのtoggleメソッドを使って下層ページのメニューをonClickで表示したいと思っています。
表示させるところまでは出来たのですが、欄外(該当のメインメニューボタンと下層ページへのリンクボタン以外)をクリックしたときに下層ページへのメニューボタンが消えるようにしたいのと、メインメニューボタンをクリックしたときに文字に色が付くようにしたいと思っています。
いくつか方法は見つけたのですがそれをどうやってくっつけてスクリプトを完成させればよいのかがプログラミングは全くの初心者で分からないので教えていただければ嬉しいです。

html

1<ul class="gnav"> 2 <li class="menu01"><a>memu01</a></li> 3 <li class="menu02"><a>memu02</a></li> 4 <li class="menu03"><a>memu03</a></li> 5 <li class="menu04"><a>memu04</a></li> 6</ul> 7 8<ul class="low-nav01"> 9 <li class="low-menu01"><a href="low-memu01.html">low-memu01</a></li> 10 <li class="low-menu02"><a href="low-memu02.html">low-memu02</a></li> 11 <li class="low-menu03"><a href="low-memu03.html">low-memu03</a></li> 12 <li class="low-menu04"><a href="low-memu04.html">low-memu04</a></li> 13</ul> 14 15<ul class="low-nav02"> 16 <li class="low-menu01"><a href="low02-memu01.html">low-memu01</a></li> 17 <li class="low-menu02"><a href="low02-memu02.html">low-memu02</a></li> 18 <li class="low-menu03"><a href="low02-memu03.html">low-memu03</a></li> 19 <li class="low-menu04"><a href="low02-memu04.html">low-memu04</a></li> 20</ul>

css

1ul { 2display: flex; 3justify-contents: center; 4align-items: center; 5flex-wrap: wrap; 6width: 100%; 7} 8li { 9width: calc(100%/4); 10li.active { 11color: #f3c50f; 12}

jQuery

1$(function() { 2 $('li.menu01 a').click(function(){ 3 $('.low-nav01').toggle(); 4 }); 5 }); 6 7$(function() { 8 $('li.menu02 a').click(function(){ 9 $('.low-nav02').toggle(); 10 }); 11 }); 12 13$(function() { 14 $('li.menu03 a').click(function(){ 15 $('.low-nav03').toggle(); 16 }); 17 }); 18 19$(function() { 20 $('li.menu04 a').click(function(){ 21 $('.low-nav04').toggle(); 22 }); 23 });

jQuery

1//色を変えるなら下記? 2$(function(){ 3  $(".gnav li a").click(function () { 4   $(".gnav li a").removeClass("active"); 5   $(this).addClass("active"); 6  }); 7 }) 8//範囲以外をクリックしたら消える? 9$('.gnav li a').click(function(event) { 10 event.stopPropagation(); 11});

自分で調べてみてなんとなくくっつけてみたりしたもののなかなかうまくいきません。どなたかお教えいただけると嬉しいです。
toggleでメニューを出す部分ももっと簡単にまとめて書けるのかもしれませんが、なにせデザイン専門なためどのようにまとめれば良いかも分からないので何かアドバイスいただければ嬉しいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

簡単のため共通クラスlow-navをつけておき、

HTML

1<ul class="low-nav low-nav01"> 2 <li class="low-menu01"><a href="low-memu01.html">low-memu01</a></li> 3 <li class="low-menu02"><a href="low-memu02.html">low-memu02</a></li> 4 <li class="low-menu03"><a href="low-memu03.html">low-memu03</a></li> 5 <li class="low-menu04"><a href="low-memu04.html">low-memu04</a></li> 6</ul> 7<!-- 以下略 -->

JavaScript

1$(document).on('click', function(event) { 2 var contains = false; 3 $('ul.gnav,low-nav').each(function(index, element) { 4 if ($.contains(element, event.target)) { 5 contains = true; 6 return false; 7 } 8 }); 9 10 if (!contains) { 11 // 範囲外。 12 $('.gnav li a.active').removeClass('active'); 13 $('.low-nav').hide(); 14 } 15});

なお、CSSが一部おかしいので{}に気を付けてみてください。

投稿2018/02/05 08:51

x_x

総合スコア13749

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

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

Yucchi

2018/02/06 06:21

ありがとうございました!無事やりたかった動きになりました。 しかしなぜかボタンの色がクリックしたときに代わらないのでその部分お分かりになりましたらお教えいただけると嬉しいです。
x_x

2018/02/06 06:57

ちらと書きましたが、"width: calc(100%/4);"の後ろに}がありません。
Yucchi

2018/02/08 08:37

ありがとうございました!
guest

0

なにで紐付けするかによります
たとえばindexを利用すればこう

javascript

1$(function(){ 2 $('.gnav li').on('click',function(){ 3 var idx=$('.gnav li').index(this); 4 $('.low-nav').eq(idx).toggle(); 5 }); 6});

HTML

1<ul class="gnav"> 2 <li class="menu01"><a>memu01</a></li> 3 <li class="menu02"><a>memu02</a></li> 4 <li class="menu03"><a>memu03</a></li> 5 <li class="menu04"><a>memu04</a></li> 6</ul> 7 8<ul class="low-nav"> 9 <li class="low-menu01"><a href="low-memu01.html">low-memu11</a></li> 10 <li class="low-menu02"><a href="low-memu02.html">low-memu12</a></li> 11 <li class="low-menu03"><a href="low-memu03.html">low-memu13</a></li> 12 <li class="low-menu04"><a href="low-memu04.html">low-memu14</a></li> 13</ul> 14<ul class="low-nav"> 15 <li class="low-menu01"><a href="low-memu01.html">low-memu21</a></li> 16 <li class="low-menu02"><a href="low-memu02.html">low-memu22</a></li> 17 <li class="low-menu03"><a href="low-memu03.html">low-memu23</a></li> 18 <li class="low-menu04"><a href="low-memu04.html">low-memu24</a></li> 19</ul> 20<ul class="low-nav"> 21 <li class="low-menu01"><a href="low-memu01.html">low-memu31</a></li> 22 <li class="low-menu02"><a href="low-memu02.html">low-memu32</a></li> 23 <li class="low-menu03"><a href="low-memu03.html">low-memu33</a></li> 24 <li class="low-menu04"><a href="low-memu04.html">low-memu34</a></li> 25</ul> 26<ul class="low-nav"> 27 <li class="low-menu01"><a href="low-memu01.html">low-memu41</a></li> 28 <li class="low-menu02"><a href="low-memu02.html">low-memu42</a></li> 29 <li class="low-menu03"><a href="low-memu03.html">low-memu43</a></li> 30 <li class="low-menu04"><a href="low-memu04.html">low-memu44</a></li> 31</ul>

投稿2018/02/05 08:08

yambejp

総合スコア114784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問