質問編集履歴

2

より詳細に

2018/10/14 15:52

投稿

ryoo_chksl
ryoo_chksl

スコア69

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

1

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

2018/10/14 15:52

投稿

ryoo_chksl
ryoo_chksl

スコア69

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- 具体的には、viewportが850px以下になった場合、``pushButton``idの``p``タグを押すと、``character``idのpタグのCSSが``display: block;``に変化するようにしたいです。viewportが850px以上になったときには
21
+ 具体的には、viewportが850px以下になった場合、``pushButton``idの``p``タグを押すと、``character``idのpタグのCSSが``display: block;``に変化するようにしたいです。viewportが850px以上になったときには、``character``idのpタグは``display: none;``に戻っていて、``pushButton``idの``p``タグを押しても何の変化も起きないようにしたいです。
22
22
 
23
23
 
24
24