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

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

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

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

HTML

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

Q&A

解決済

3回答

4285閲覧

HTML 折りたたみメニューのメニューの矢印を変化させたい

satoshi501

総合スコア60

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2016/09/23 02:39

お世話になります。

HTMLにて折りたたみメニューを作成し、クリックすると新しくテキストが表示されるものを作成しました。

<h4><a href=""onclick="oritatami('o1');return false">メニュー1▶</a></h4> <div id="o1" style="display:none"> <ul> <li> メニュー1−1</li> </ul> </div>

"oritatami"は予め作成したjavascriptを使用しています。

今回おしえていただきたいのは、メニュー1の横にある"▶"がクリックされ、メニュー1−1が表示されたときには矢印の向きを下向きに変化させたいと思っています。

よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

googleで検索するといろいろありますよ。
折りたたみメニュー+矢印

投稿2016/09/23 02:58

WanOOOOOO

総合スコア110

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

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

satoshi501

2016/09/23 05:52

ありがとうございます
guest

0

ベストアンサー

全ブラウザに対応するにはjavascriptが必要ですが、ある程度新しいものだけでよいなら
:checkedセレクタで判断してもよいかもしれません

css

1input.oritatami {display:none;} 2input.oritatami + h4>label:after{content:"→";} 3input.oritatami + h4 + div {display:none;} 4input.oritatami:checked + h4>label:after{content:"↓";} 5input.oritatami:checked + h4 + div {display:block;} 6

HTML

1<input type="checkbox" id="c1" class="oritatami"> 2<h4><label for="c1">メニュー1</label></h4> 3<div> 4<ul> 5<li> メニュー1-1</li> 6<li> メニュー1-2</li> 7<li> メニュー1-3</li> 8</ul> 9</div> 10<input type="checkbox" id="c2" class="oritatami" checked> 11<h4><label for="c2">メニュー2</label></h4> 12<div> 13<ul> 14<li> メニュー2-1</li> 15<li> メニュー2-2</li> 16<li> メニュー2-3</li> 17</ul> 18</div> 19<input type="checkbox" id="c3" class="oritatami"> 20<h4><label for="c3">メニュー3</label></h4> 21<div> 22<ul> 23<li> メニュー3-1</li> 24<li> メニュー3-2</li> 25<li> メニュー3-3</li> 26</ul> 27</div> 28

追記

:checkedが使えない場合のjQuery補足バージョンです
古いIEはチェックボックスを非表示にすると色々問題あるので表示外に飛ばしてしまいます

CSS

1input.oritatami {position:absolute;margin-top:-9999px;} 2label.open:after{content:"↓";} 3label.close:after{content:"→";} 4div.open{display:block;} 5div.close{display:none;}

javascript

1/* 別途jquery組み込むこと */ 2$(function(){ 3 $('input.oritatami[type=checkbox]').change(function(){ 4 if($(this).prop('checked')){ 5 var remove="close"; 6 var add="open"; 7 }else{ 8 var remove="open"; 9 var add="close"; 10 } 11 $(this).nextAll('h4').first().children('label').addClass(add); 12 $(this).nextAll('h4').first().children('label').removeClass(remove); 13 $(this).nextAll('div').first().addClass(add); 14 $(this).nextAll('div').first().removeClass(remove); 15 }).change(); 16}); 17

HTML

1<input type="checkbox" id="c1" class="oritatami"> 2<h4><label for="c1">メニュー1</label></h4> 3<div> 4<ul> 5<li> メニュー1-1</li> 6<li> メニュー1-2</li> 7<li> メニュー1-3</li> 8</ul> 9</div> 10<input type="checkbox" id="c2" class="oritatami" checked> 11<h4><label for="c2">メニュー2</label></h4> 12<div> 13<ul> 14<li> メニュー2-1</li> 15<li> メニュー2-2</li> 16<li> メニュー2-3</li> 17</ul> 18</div> 19<input type="checkbox" id="c3" class="oritatami"> 20<h4><label for="c3">メニュー3</label></h4> 21<div> 22<ul> 23<li> メニュー3-1</li> 24<li> メニュー3-2</li> 25<li> メニュー3-3</li> 26</ul> 27</div> 28

投稿2016/09/23 04:05

編集2016/09/23 05:14
yambejp

総合スコア114839

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

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

satoshi501

2016/09/23 05:51

ありがとうございます。 無事思い通りの事が実行できました!
guest

0

ガバガバですが…
onclick属性に

JavaScript

1this.innerHTML=this.innerHTML.replace(//,'▼');

を追加とか

投稿2016/09/23 03:25

NS-DOS

総合スコア110

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

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

satoshi501

2016/09/23 05:52

ありがとうございます。 ただちょっと展開の仕方が自分にはわかりませんでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問