teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

より詳細に

2018/10/14 15:52

投稿

ryoo_chksl
ryoo_chksl

スコア69

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,37 @@
1
+ ページ上部に``header``要素でナビゲーションメニューを横並びに作っています。``width``が850px以上の場合、左側に``aside``要素でサブメニューを縦並びに作っています。しかし、``width``が850px以下になった場合、``aside``要素をドロップダウンメニューとして使おうと考えています。
2
+
3
+ 例えば、
1
4
  ```html
2
- <p id="pushButton">push</p>
5
+ <header>
3
- <p id="character">dog</p>
6
+ <ul id="header">
7
+ <li><a id="profileLogoName">ABC</a></li>
8
+ <li>DEF</li>
9
+ <li>GHI</li>
10
+ <li>JKL</li>
11
+ <li>MNO</li>
12
+ </ul>
13
+ </header>
14
+
15
+ <aside>
16
+ <ul>
17
+ <li>abc</li>
18
+ <li>def</li>
19
+ <li>ghi</li>
20
+ <li>jkl</li>
21
+ </ul>
22
+ </aside>
4
23
  ```
24
+ ``width``が850px以下の場合、``#profileLogoName``の要素を押すと``aside``タグがドロップダウンメニューとして現れる仕様にしたいです。そこでJavaScriptを次のように設定しました。
5
- ```css
25
+ ```javascript
6
- #character {display: none;}
26
+ window.onresize = function() {
27
+ var profile = document.getElementById('profileLogoName');
28
+ var subMenu = document.getElementsByTagName('aside')[0];
29
+
30
+ if(window.innerWidth < 850) {
31
+ profile.addEventListener('click', function() {subMenu.style.display = "block";})
32
+ subMenu.addEventListener('click', function() {subMenu.style.display = "none";})
33
+ }
34
+ }
7
35
  ```
8
-
9
- レスポンシブWebデザインとして、``width``が850pxのところを基準にデザインを変えていま。viewportが850px以下になったときだけに、JavaScriptを適用させたいです。
10
-
11
- 具体的には、viewportが850px以下になった場合、``pushButton``idの``p``タグを押すと、``character``idのpタグのCSSが``display: block;``に変化するようにしたいです。viewportが850px以上になったときには、``character``idのpタグは``display: none;``に戻っていて、``pushButton``idの``p``タグを押しても何の変化も起きないようにしたいです。
12
-
13
- JSはどのように設定すればいいでしょうか?
36
+ しかし、これだといくつか問題点があり、うまくいきませんでした。
37
+ どう改善ればしょうか?

1

文章が書いている途中で投稿してしまったので、最後まで記入

2018/10/14 15:52

投稿

ryoo_chksl
ryoo_chksl

スコア69

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,6 @@
8
8
 
9
9
  レスポンシブWebデザインとして、``width``が850pxのところを基準にデザインを変えています。viewportが850px以下になったときだけに、JavaScriptを適用させたいです。
10
10
 
11
- 具体的には、viewportが850px以下になった場合、``pushButton``idの``p``タグを押すと、``character``idのpタグのCSSが``display: block;``に変化するようにしたいです。viewportが850px以上になったときには
11
+ 具体的には、viewportが850px以下になった場合、``pushButton``idの``p``タグを押すと、``character``idのpタグのCSSが``display: block;``に変化するようにしたいです。viewportが850px以上になったときには、``character``idのpタグは``display: none;``に戻っていて、``pushButton``idの``p``タグを押しても何の変化も起きないようにしたいです。
12
12
 
13
13
  JSはどのように設定すればいいでしょうか?