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

回答編集履歴

1

実装例を追加

2018/05/26 23:46

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -1,1 +1,58 @@
1
- 全体表示したものに対して、行単位に style="display=none" の制御をしてあげればよいのかと思います。
1
+ 全体表示したものに対して、行単位に style="display=none" の制御をしてあげればよいのかと思います。
2
+
3
+ 実装例ということで、書いてみました。
4
+ ``` html
5
+ <body>
6
+ <div id="settings">
7
+ <!-- currentidには 1,2,3などが入っている想定 -->
8
+ <div class="screen" id="1">
9
+ ああああああ
10
+ <div class="background"></div>
11
+ <div class="chartype"></div>
12
+ <div class="dialogue-frame"></div>
13
+ </div>
14
+
15
+ <div class="screen" id="2">
16
+ いいいいいいい
17
+ <div class="background"></div>
18
+ <div class="chartype"></div>
19
+ <div class="dialogue-frame"></div>
20
+ </div>
21
+
22
+ <div class="screen" id="3">
23
+ ううううううう
24
+ <div class="background"></div>
25
+ <div class="chartype"></div>
26
+ <div class="dialogue-frame"></div>
27
+ </div>
28
+ </div>
29
+ </body>
30
+ ```
31
+
32
+ ``` js
33
+ let current_screen_no = 1;
34
+ let screens = document.getElementsByClassName("screen");
35
+ let screen_num = screens.length;
36
+ display_screen(1);
37
+
38
+ // スクリーン切り替えの処理
39
+ function display_screen(screen_no) {
40
+ Array.prototype.forEach.call(screens, function(screen){
41
+ if (Number(screen.id) === screen_no) {
42
+ screen.style.display = "block";
43
+ } else {
44
+ screen.style.display = "none";
45
+ }
46
+ });
47
+ current_screen_no = current_screen_no + 1;
48
+ }
49
+
50
+ document.body.addEventListener('click',function(mEvent){
51
+ if (current_screen_no <= screen_num){
52
+ display_screen(current_screen_no);
53
+ }
54
+ },true);
55
+ ```
56
+
57
+ 【動くサンプル】
58
+ [https://jsfiddle.net/euledge/4r5cft7d/](https://jsfiddle.net/euledge/4r5cft7d/)