回答編集履歴

1

ソースの追加

2019/03/07 04:30

投稿

sauzar18
sauzar18

スコア163

test CHANGED
@@ -9,3 +9,185 @@
9
9
  クラスを付与して表示させるとかですね。
10
10
 
11
11
  ご参考までに。
12
+
13
+
14
+
15
+ 簡易的なものですが、こんな感じです。
16
+
17
+ ```html
18
+
19
+ <html lang="ja">
20
+
21
+ <head>
22
+
23
+ <meta charset="UTF-8">
24
+
25
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
26
+
27
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
28
+
29
+ <title>Document</title>
30
+
31
+ <style>
32
+
33
+ * {
34
+
35
+ padding: 0;
36
+
37
+ margin: 0;
38
+
39
+ }
40
+
41
+ .st-modal {
42
+
43
+ position: fixed;
44
+
45
+ left: 0;
46
+
47
+ right: 0;
48
+
49
+ top: 120px;
50
+
51
+ width: 320px;
52
+
53
+ max-width: 0;
54
+
55
+ margin: 0 auto;
56
+
57
+ box-shadow: 0 0 6px rgba(0,0,0,0.16);
58
+
59
+ transition: 0.2s all;
60
+
61
+ visibility: visible;
62
+
63
+ overflow: hidden;
64
+
65
+ }
66
+
67
+ .st-modal.active {
68
+
69
+ max-width: 320px;
70
+
71
+ visibility: initial;
72
+
73
+ overflow: initial;
74
+
75
+ padding: 20px;
76
+
77
+ background-color: #efefef;
78
+
79
+ }
80
+
81
+ dl{
82
+
83
+ display: flex;
84
+
85
+ align-items: center;
86
+
87
+ }
88
+
89
+ </style>
90
+
91
+ </head>
92
+
93
+ <body>
94
+
95
+ <div id="app">
96
+
97
+ <form>
98
+
99
+ <div class="form">
100
+
101
+ <input
102
+
103
+ type="text"
104
+
105
+ v-model="name"
106
+
107
+ required
108
+
109
+ aria-required="true"
110
+
111
+ >
112
+
113
+ <button
114
+
115
+ v-if="name"
116
+
117
+ type="button"
118
+
119
+ @click="isActive = true"
120
+
121
+ >
122
+
123
+ 確認
124
+
125
+ </button>
126
+
127
+ <p v-else>{{ isMessage() }}</p>
128
+
129
+ </div>
130
+
131
+ <div
132
+
133
+ :class="{ active: isActive }"
134
+
135
+ class="st-modal"
136
+
137
+ >
138
+
139
+ <dl>
140
+
141
+ <dt>お名前:</dt>
142
+
143
+ <dd>{{ name }}</dd>
144
+
145
+ </dl>
146
+
147
+ <button type="submit">
148
+
149
+ 送信
150
+
151
+ </button>
152
+
153
+ </div>
154
+
155
+ </form>
156
+
157
+ </div>
158
+
159
+ <script src="https://cdn.jsdelivr.net/npm/vue"></script>
160
+
161
+ <script>
162
+
163
+ const app = new Vue({
164
+
165
+ el: '#app',
166
+
167
+ data: {
168
+
169
+ name: '',
170
+
171
+ isActive: false
172
+
173
+ },
174
+
175
+ methods: {
176
+
177
+ isMessage: function () {
178
+
179
+ if (!this.name) return 'お名前が入力されていません。'
180
+
181
+ }
182
+
183
+ }
184
+
185
+ })
186
+
187
+ </script>
188
+
189
+ </body>
190
+
191
+ </html>
192
+
193
+ ```