質問編集履歴

4

修正

2022/02/01 07:28

投稿

ayuayuayu
ayuayuayu

スコア68

test CHANGED
File without changes
test CHANGED
@@ -161,3 +161,143 @@
161
161
  left: 0;
162
162
  }
163
163
  ```
164
+
165
+
166
+ 追記
167
+
168
+ ```ここに言語を入力
169
+ <ul class="itemList">
170
+
171
+ <li><img value="d1" data-target="#d1"src="img/bag1.png"></li>
172
+ <li><img value="d2" data-target="#d2" src="img/bag1.png">
173
+ </li>
174
+ <li><img value="d3" data-target="#d3"src="img/bag1.png">
175
+ </li>
176
+
177
+ </ul>
178
+
179
+ <dialog id="d1">
180
+
181
+ <div class="modal-bg">
182
+ <div class="modal-content">
183
+ <img src="img/bag1.png">
184
+ <div>
185
+   <h3>11111説明</h3>
186
+    <p>テキストテキスト</p> 
187
+    <a href="" class="modal-l">リンク</a>
188
+    <input type="button" class="close bt">
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </dialog>
193
+
194
+
195
+ <dialog id="d2">
196
+ <div class="modal-bg">
197
+ <div class="modal-content">
198
+ <img src="img/bag1.png">
199
+ <div>
200
+   <h3>222222説明</h3>
201
+    <p>テキストテキスト</p> 
202
+    <a href="" class="modal-l">リンク</a>
203
+ <input type="button"class="close bt">
204
+    
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </dialog>
209
+ <dialog id="d3">
210
+ <div class="modal-bg">
211
+ </div>
212
+ <div class="modal-content">
213
+ <img src="img/bag1.png">
214
+ <div>
215
+   <h3>333333説明</h3>
216
+    <p>テキストテキスト</p> 
217
+    <a href="" class="modal-l">リンク</a>
218
+    <input type="button" class="close bt">
219
+ </div>
220
+ </div>
221
+ </dialog>
222
+ ```
223
+ 追記css
224
+ ```ここに言語を入力
225
+
226
+ dialog{
227
+ background: #ffffff00;
228
+ top: 0;
229
+ height: 122vh;
230
+ width: 100%;
231
+ margin: 0 0;
232
+ padding: 0 0;
233
+ border: none;
234
+ position: fixed;
235
+ z-index: 100000;
236
+ }
237
+
238
+ /* モーダル本体 */
239
+ .modal-content{
240
+ position: absolute;
241
+ top: 50%;
242
+ left: 50%;
243
+ transform: translate(-50%, -50%);
244
+ overflow: auto; /* はみ出た部分はスクロールさせる */
245
+ height: 80%;/* これが無いと「overflow:scroll」が利かない */
246
+ width: 60%;/* これが無いと「overflow:scroll」が利かない */
247
+ background: white;
248
+ z-index: 100000;
249
+ }
250
+
251
+ /* モーダルウィンドウ表示中に記事本体を固定 */
252
+ body.fixed {
253
+ position: fixed;
254
+ width: 100%;
255
+ height: 100%;
256
+ left: 0;
257
+ background: #000000;
258
+ }
259
+ .modal-content img{
260
+ width:100%;
261
+ }
262
+ input.bt{
263
+ width: 36px;
264
+ height: 36px;
265
+ background: url(img/close.png) top right no-repeat;
266
+ position:absolute;
267
+ top:1%;
268
+ right: 1%;
269
+ border: none;
270
+
271
+ }
272
+ .modal-content div{
273
+ padding: 20px;
274
+ }
275
+ a.modal-l{
276
+ display:block;
277
+ }
278
+ ::-webkit-scrollbar {
279
+ width: 10px;
280
+ height: 10px;
281
+ }
282
+
283
+ ::-webkit-scrollbar-thumb {
284
+ background: #8e8e8e;
285
+ border-radius: 5px;
286
+ }
287
+ ::-webkit-scrollbar-track {
288
+ background: #eeeeee;
289
+ border-radius: 5px;
290
+ }
291
+
292
+
293
+ /* モーダル背景 */
294
+ .modal-bg{
295
+ position: fixed;
296
+ width: 100%;
297
+ height: 100%;
298
+ left: 0;
299
+ background: #000000d6;
300
+ z-index: 1;
301
+ }
302
+
303
+ ```

3

修正

2022/02/01 03:33

投稿

ayuayuayu
ayuayuayu

スコア68

test CHANGED
@@ -1 +1 @@
1
- パラメーター一致してるモーダルウィンドウを開きたい
1
+ パラメーターIDと一致するdata-target を探して表示させたい
test CHANGED
@@ -1,10 +1,14 @@
1
1
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-31/1ce6e368-219c-4a78-b7d5-0ee2124fbd59.png)
2
2
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-31/d32280bc-9de9-44aa-bf53-135073fa588e.png)
3
- 前回の質問で、クリックしてパラメーターを付け方法教えていただきました。
3
+ パラメーターIDと一致すdata-target 探し表示させた
4
+
4
5
  画像のように一覧から画像をクリックすると画像と説明文が出で来るモーダルウィンドウを作りました。
5
- 今、クリックしたらジャスクリプトでモーダルウィンドウをひらいているのですが、これをクリックではなく、パラメーターを取得して一致する要素を(URLで外から飛んできても)開けるようにしたいのですがうまく行きません、、、
6
+ パラメーターを取得して一致する要素を(URLで外から飛んできても)開けるようにしたいのですが
7
+ パラメーターID【paramId】と一致するdata-targetを探してそれを表示できれば完成しますが取得が上手くできません
8
+ var data = document.querySelectorAll('[data-target="'+paramId+'"]')
6
- if文書きょうか、、
9
+ 探しを試ましたが違いました、、
7
- パラメーターは初めて使います。
10
+
11
+
8
12
  参考サイトはここです[https://www.tam-tam.co.jp/tipsnote/javascript/post9911.html](url)
9
13
 
10
14
  ```ここに言語を入力

2

編集

2022/01/31 09:26

投稿

ayuayuayu
ayuayuayu

スコア68

test CHANGED
File without changes
test CHANGED
@@ -50,28 +50,43 @@
50
50
  ```ここに言語を入力
51
51
  <script>
52
52
 
53
-
54
- $('.js-modal-open').on('click', function(){
55
- //パラメーターを付ける
56
- var target = $(this).data('target');
57
- var modal = document.getElementById(target);
58
-
59
- let setParam = '?' +target;
60
- history.pushState(null, null, setParam);
61
- });
62
-
63
- // URLのパラメータを取得
53
+ // URLのパラメータを取得
64
- var urlParam = location.search.substring(1);
54
+ var urlParam = location.search.substring(1);
65
55
 
66
56
  // URLにパラメータが存在する場合
67
- if (urlParam== target) {
57
+ if(urlParam) {
58
+ // 「&」が含まれている場合は「&」で分割
59
+ var param = urlParam.split('&');
60
+
61
+ // パラメータを格納する用の配列を用意
62
+ var paramArray = [];
63
+
64
+ // 用意した配列にパラメータを格納
65
+ for (i = 0; i < param.length; i++) {
66
+ var paramItem = param[i].split('=');
67
+ paramArray[paramItem[0]] = paramItem[1];
68
+ }
69
+ paramId = paramItem[1];
70
+ console.log(paramId);
71
+
72
+ // パラメータidを判断する
73
+ if (paramId == 'modal01') {
74
+   
75
+ var target = $(paramId).data('target');
76
+ var modal = document.getElementById(target);
68
77
 
69
- //モーダルウィンドウを開く
70
- scrollPosition = $(window).scrollTop();
78
+ scrollPosition = $(window).scrollTop();
71
79
  $('body').addClass('fixed').css({'top': -scrollPosition});
72
80
  $('.js-modal').fadeIn();
81
+
73
- return false;
82
+ } else {
83
+  alert('違う');
84
+
74
- }
85
+ }
86
+ }
87
+
88
+
89
+
75
90
  // モーダルウィンドウを閉じる
76
91
  $('.js-modal-close').on('click', function(){
77
92
  $("header").fadeIn();
@@ -79,7 +94,10 @@
79
94
  window.scrollTo( 0 , scrollPosition );
80
95
  $('.js-modal').fadeOut();
81
96
  return false;
97
+
98
+
82
99
  });
100
+
83
101
 
84
102
 
85
103
  </script>

1

修正

2022/01/31 04:28

投稿

ayuayuayu
ayuayuayu

スコア68

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,7 @@
1
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-31/1ce6e368-219c-4a78-b7d5-0ee2124fbd59.png)
2
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-31/d32280bc-9de9-44aa-bf53-135073fa588e.png)
1
3
  前回の質問で、クリックしてパラメーターを付ける方法を教えていただきました。
4
+ 画像のように一覧から画像をクリックすると画像と説明文が出で来るモーダルウィンドウを作りました。
2
5
  今、クリックしたらジャパスクリプトでモーダルウィンドウをひらいているのですが、これをクリックではなく、パラメーターを取得して一致する要素を(URLで外から飛んできても)開けるようにしたいのですがうまく行きません、、、
3
6
  if文の書き方でしょうか、、?
4
7
  パラメーターは初めて使います。