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

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

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

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

HTML5

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

JavaScript

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

jQuery

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

Q&A

解決済

1回答

6548閲覧

アコーディオンメニューで、一つ開くと全部開いてしまうのを何とかしたい。

shunsaku87

総合スコア39

CSS3

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

HTML5

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

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2020/10/05 06:08

編集2020/10/05 06:10

アコーディオンメニューを実装したいです。クリックで開くタイプのメニューです。
しかし、ひとつ開くとほかのところも同時に開いてしまうのをなんとかしたいです。

現状の見た目、動作
↑現状こんな感じです。

html css jsのコードはこんな感じです。

html↓

<div class="section s_08"> <div class="accordion_area"> <div class="accordion_one _flex"> <div class="accordion_header">Category</div> <div class="accordion_inner"> <div class="accordion_one"> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> </div> </div> </div> <div class="accordion_one _flex"> <div class="accordion_header">Keyword</div> <div class="accordion_inner"> <div class="accordion_one"> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> </div> </div> </div> <div class="accordion_one _flex"> <div class="accordion_header">Year</div> <div class="accordion_inner"> <div class="accordion_one"> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> <div class="accordion_header_one">カテゴリが入ります</div> </div> </div> </div> </div> </div> コード

css↓

.accordion_area{ width:655px; margin:0 auto; display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-top:100px; } .accordion_area .accordion_one._flex{ width:210px; /* display:inline-block; */ border:1px solid #00B8B6; border-radius:23px; font-family : GothamRounded Medium; font-size : 16px; line-height : 30px; letter-spacing : 4.48px; color : #00B8B6; padding:15px 0 15px 15px; text-align: left; } .accordion_area .accordion_header{ position:relative; } .accordion_area .accordion_header::after{ content:""; width:10px; height:10px; border-bottom:1px solid #00B8B6; border-right:1px solid #00B8B6; position:absolute; top:50%; right:30px; transform: rotate(45deg)translateY(-150%); } .s_08 .accordion_one .accordion_inner{ display: none; padding: 0; box-sizing: border-box; } コード

js↓

// .s_08 .accordion_one $(function(){ //.accordion_oneの中の.accordion_headerがクリックされたら $('.s_08 .accordion_one .accordion_header').click(function(){ //クリックされた.accordion_oneの中の.accordion_headerに隣接する.accordion_innerが開いたり閉じたりする。 $(this).next('.accordion_inner').slideToggle(); $(this).toggleClass("open"); //クリックされた.accordion_oneの中の.accordion_header以外の.accordion_oneの中の.accordion_headerに隣接する.accordion_oneの中の.accordion_innerを閉じる $('.s_08 .accordion_one .accordion_header').not($(this)).next('.accordion_one .accordion_inner').slideUp(); $('.s_08 .accordion_one .accordion_header').not($(this)).removeClass("open"); }); }); コード

これをクリックするとクリックした部分だけ下に開くようにしたいです。

どなたかわかる方いらっしゃいましたら、教えてください。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ちょっと惜しい事になっていたよ

javascript

1$(function(){ 2 //.accordion_oneの中の.accordion_headerがクリックされたら 3 $('.s_08 .accordion_one .accordion_header').click(function(){ 4 var isOpen = $(this).hasClass('open'); // クリックされたタグにすでに'open'が設定されているか 5 $('.accordion_one > .open + .accordion_inner').slideToggle(); // 閉じる 6 $('.s_08 .accordion_one .accordion_header').removeClass("open"); // "open"全部削除 7 if(isOpen == false){ 8 $(this).addClass("open"); // 自分は"open"を設定 9 $('.accordion_one > .open + .accordion_inner').slideToggle(); // 開く用 10 } 11 }); 12}); 13

1箇所だけ追加

CSS

1.accordion_area{ 2 width:655px; 3 margin:0 auto; 4 display:-webkit-box; 5 display:-ms-flexbox; 6 display:flex; 7 -webkit-box-pack: justify; 8 -ms-flex-pack: justify; 9 justify-content: space-between; 10 margin-top:100px; 11} 12.accordion_area .accordion_one._flex{ 13 width:210px; 14 /* display:inline-block; */ 15 display: inline-table; /* ※ 追加*/ 16 border:1px solid #00B8B6; 17 border-radius:23px; 18 font-family : GothamRounded Medium; 19 font-size : 16px; 20 line-height : 30px; 21 letter-spacing : 4.48px; 22 color : #00B8B6; 23 padding:15px 0 15px 15px; 24 text-align: left; 25} 26.accordion_area .accordion_header{ 27 position:relative; 28} 29.accordion_area .accordion_header::after{ 30 content:""; 31 width:10px; 32 height:10px; 33 border-bottom:1px solid #00B8B6; 34 border-right:1px solid #00B8B6; 35 position:absolute; 36 top:50%; 37 right:30px; 38 transform: rotate(45deg)translateY(-150%); 39} 40.s_08 .accordion_one .accordion_inner{ 41 display: none; 42 padding: 0; 43 box-sizing: border-box; 44}

投稿2020/10/05 06:48

kuma_kuma_

総合スコア2506

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

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

shunsaku87

2020/10/05 06:53

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問