回答編集履歴

1

JavaScriptで実装するような方法を追加

2020/04/05 01:57

投稿

new1ro
new1ro

スコア4528

test CHANGED
@@ -1,8 +1,8 @@
1
- HTMLとCSSだけなら、以下ようにする実装できると思います。
1
+ HTMLとCSSだけの方法、JavaScriptを用いた方法とがあると思います。
2
2
 
3
3
 
4
4
 
5
- HTML+CSSのみ
5
+ 案1. HTML + CSSのみ
6
6
 
7
7
  ```HTML
8
8
 
@@ -53,3 +53,69 @@
53
53
  }
54
54
 
55
55
  ```
56
+
57
+ ---
58
+
59
+ 案2. HTML + CSS + JavaScript
60
+
61
+ ```HTML
62
+
63
+ <div>メニュー1</div>
64
+
65
+ <div>メニュー2</div>
66
+
67
+ <div>メニュー3</div>
68
+
69
+ ```
70
+
71
+ ```CSS
72
+
73
+ div:hover {
74
+
75
+ background-color: blue;
76
+
77
+ }
78
+
79
+ div:active,
80
+
81
+ div.active {
82
+
83
+ /* 選択している状態の */
84
+
85
+ background-color: red;
86
+
87
+ }
88
+
89
+ ```
90
+
91
+ ```JS
92
+
93
+ var elm = document.querySelectorAll('div');
94
+
95
+
96
+
97
+ for (let i = 0; i < elm.length; i++) {
98
+
99
+ elm[i].addEventListener('click', () => {
100
+
101
+ // すべてのdivからactiveクラスを削除
102
+
103
+ for (let j = 0; j < elm.length; j++) {
104
+
105
+ elm[j].classList.remove('active');
106
+
107
+ }
108
+
109
+
110
+
111
+ // クリックした要素にactiveクラスを追加
112
+
113
+ elm[i].classList.add('active');
114
+
115
+ });
116
+
117
+ }
118
+
119
+ ```
120
+
121
+ jQueryなら、for文のない、もう少しシンプルな記述で実装できると思います。