質問編集履歴

3

別の実装方法の追記

2017/12/28 09:10

投稿

Nerf.this
Nerf.this

スコア14

test CHANGED
File without changes
test CHANGED
@@ -141,3 +141,79 @@
141
141
  各タブの初回クリック時に、コンテンツ部分一瞬真っ白になる(全て`display: none;`状態)
142
142
 
143
143
  2回目からは一瞬真っ白になることなくスムーズに表示される
144
+
145
+
146
+
147
+ ###追記(上手くいった実装方法。しかし、こちらの場合フェードインの実装方法がわかりません。)
148
+
149
+ ```JavaScript
150
+
151
+ //対象要素取得
152
+
153
+ var tabs = document.getElementById('tabs').getElementsByTagName('div');
154
+
155
+ var pages = document.getElementById('contents').getElementsByTagName('div');
156
+
157
+
158
+
159
+ //タブ切り替え
160
+
161
+ function changeTab() {
162
+
163
+ var targetid = this.href.substring(this.href.indexOf('#')+1,this.href.length);
164
+
165
+
166
+
167
+ //指定のタブページだけを表示する
168
+
169
+ for(var i=0; i<pages.length; i++) {
170
+
171
+ if( pages[i].id != targetid ) {
172
+
173
+ pages[i].style.display = "none";
174
+
175
+ }else {
176
+
177
+ pages[i].style.display = "block";
178
+
179
+ }
180
+
181
+ }
182
+
183
+
184
+
185
+ //クリックしたタブを前面に表示する
186
+
187
+ for(var i=0; i<tabs.length; i++) {
188
+
189
+ tabs[i].style.zIndex = "0";
190
+
191
+ }
192
+
193
+ this.style.zIndex = "10";
194
+
195
+
196
+
197
+ //ページ遷移しないようにfalseを返す
198
+
199
+ return false;
200
+
201
+ }
202
+
203
+
204
+
205
+ //すべてのタブに対して、クリック時にchangeTab関数が実行されるよう指定する
206
+
207
+ for(var i=0; i<tabs.length; i++) {
208
+
209
+ tabs[i].onclick = changeTab;
210
+
211
+ }
212
+
213
+
214
+
215
+ //最初は先頭のタブを選択しておく
216
+
217
+ tabs[0].onclick();
218
+
219
+ ```

2

タグの修正

2017/12/28 09:10

投稿

Nerf.this
Nerf.this

スコア14

test CHANGED
File without changes
test CHANGED
File without changes

1

タグに誤りがあったため、適切なタグに再設定しました。

2017/12/28 08:53

投稿

Nerf.this
Nerf.this

スコア14

test CHANGED
File without changes
test CHANGED
File without changes