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

回答編集履歴

1

追記

2019/06/17 02:04

投稿

azuapricot
azuapricot

スコア2343

answer CHANGED
@@ -13,4 +13,94 @@
13
13
 
14
14
  誰かがどこかに設定したからそう動いているんです。
15
15
 
16
- 誰かが、jsかCSSに背景を黒くする、と書いているからそうでています。
16
+ 誰かが、jsかCSSに背景を黒くする、と書いているからそうでています。
17
+
18
+ ---
19
+
20
+ ### コメントを受けての追記
21
+
22
+ 書いてるうちに解決したようですがせっかく書いたのでのせときます。
23
+
24
+
25
+ > しかし何故このdisplay:none;となっているクラスがログインをクリックされたことで表示になるのかわかりません
26
+
27
+ コードを見ればすべて書いてあります。順番に見ていきます。
28
+
29
+ まずJSコードを見ましょう
30
+
31
+ ```JavaScript
32
+ $('#login-modal').fadeIn();
33
+ ```
34
+
35
+ ここでモーダルを表示してるのは見ればわかると思います。
36
+
37
+ $('#login-modal') この記述で、 **どこを** 表示したいのかを指定しています。
38
+
39
+ では **#login-modal** とはどこのことでしょう。
40
+
41
+ ```HTML
42
+ <!-- 「login-modal」というidを追加してください -->
43
+ <div class="login-modal-wrapper" id="login-modal"> ←ここに書いてある
44
+ <!-- ログインのモーダル部分のHTMLを貼り付けてください -->
45
+
46
+ <div class="modal">
47
+ <div id="login-form">
48
+ <h2>Emailログイン</h2>
49
+ <form action="#">
50
+ <input class="form-control" type="text" placeholder="メールアドレス">
51
+ <input class="form-control" type="password" placeholder="パスワード">
52
+ <div id="submit-btn">ログイン</div>
53
+ </form>
54
+ </div>
55
+ </div>
56
+
57
+ </div>
58
+ ```
59
+
60
+ <div>要素に id = "login-modal" としっかり書いてありますね。
61
+
62
+ 「**#**」 とは HTML要素の id属性のことを指しています。
63
+ オマケで「**.**」はclass属性です。
64
+
65
+ idが login-modal の要素を表示してね♡とJSで書いているので、
66
+ 言われた通り忠実なJavaScriptくんは login-modalのdivを表示します。
67
+
68
+ ここで問題の背景色に関してですが、 id属性以外にも class属性がついている点に注目しましょう
69
+
70
+ ```HTML
71
+ <div class="login-modal-wrapper" id="login-modal">
72
+ ```
73
+
74
+ なにやら login-modal-wrapper というクラスがくっついていますね。
75
+
76
+ じゃあここでCSSをみます。
77
+
78
+ ```CSS
79
+ .login-modal-wrapper {
80
+ display: none;
81
+ position: fixed;
82
+ top: 0;
83
+ right: 0;
84
+ bottom: 0;
85
+ left: 0;
86
+ background-color: rgba(0, 0, 0, 0.5);
87
+ z-index: 100;
88
+ /* display: none;を追加してください */
89
+
90
+ }
91
+ ```
92
+
93
+ なんということでしょう。スタイルが設定されていますね。
94
+
95
+ CSSでdisplay:none;を追加したかと思いますが、
96
+
97
+ id = login-modal をfadeIn()すると、その同じdivに設定されている login-modal-wrapperクラスも fadeIn()されます。
98
+
99
+ なのでdisplay:none; はクリックするとdisplay:block;に変わります。
100
+
101
+ F12を押してデベロッパーツールを開いて確認してみるとわかりやすいのではないでしょーか。
102
+
103
+
104
+ このようにJSもCSSも命令されたことを従順に実行するだけの使いっ走りでしかありません。
105
+
106
+ 絶対にどこかでそのように命令しているヤツがいます。