質問編集履歴

2

文法の修正

2019/11/29 02:56

投稿

minomonnta
minomonnta

スコア9

test CHANGED
File without changes
test CHANGED
@@ -47,269 +47,3 @@
47
47
  </p>
48
48
 
49
49
  ```
50
-
51
-
52
-
53
-
54
-
55
- ```javascript
56
-
57
- window.onload = function() {
58
-
59
-
60
-
61
- //要素の取得
62
-
63
- var elements = document.getElementsByClassName("drag-and-drop");
64
-
65
-
66
-
67
-
68
-
69
- //要素内のクリックされた位置を取得するグローバル(のような)変数
70
-
71
- var x;
72
-
73
- var y;
74
-
75
-
76
-
77
- //マウスが要素内で押されたとき、又はタッチされたとき発火
78
-
79
- for(var i = 0; i < elements.length; i++) {
80
-
81
- elements[i].addEventListener("mousedown", mdown, false);
82
-
83
- elements[i].addEventListener("touchstart", mdown, false);
84
-
85
- }
86
-
87
-
88
-
89
-
90
-
91
- //マウスが押された際の関数
92
-
93
- function mdown(e) {
94
-
95
-
96
-
97
- //クラス名に .drag を追加
98
-
99
- this.classList.add("drag");
100
-
101
-
102
-
103
-
104
-
105
- //タッチデイベントとマウスのイベントの差異を吸収
106
-
107
- if(e.type === "mousedown") {
108
-
109
- var event = e;
110
-
111
- } else {
112
-
113
- var event = e.changedTouches[0];
114
-
115
- }
116
-
117
-
118
-
119
- //要素内の相対座標を取得
120
-
121
- x = event.pageX - this.offsetLeft;
122
-
123
- y = event.pageY - this.offsetTop;
124
-
125
-
126
-
127
- //ムーブイベントにコールバック
128
-
129
- document.body.addEventListener("mousemove", mmove, false);
130
-
131
- document.body.addEventListener("touchmove", mmove, false);
132
-
133
- }
134
-
135
-
136
-
137
- //マウスカーソルが動いたときに発火
138
-
139
- function mmove(e) {
140
-
141
-
142
-
143
- //ドラッグしている要素を取得
144
-
145
- var drag = document.getElementsByClassName("drag")[0];
146
-
147
-
148
-
149
-
150
-
151
- //同様にマウスとタッチの差異を吸収
152
-
153
- if(e.type === "mousemove") {
154
-
155
- var event = e;
156
-
157
- } else {
158
-
159
- var event = e.changedTouches[0];
160
-
161
- }
162
-
163
-
164
-
165
- //フリックしたときに画面を動かさないようにデフォルト動作を抑制
166
-
167
- e.preventDefault();
168
-
169
-
170
-
171
- //マウスが動いた場所に要素を動かす
172
-
173
- drag.style.top = event.pageY - y + "px";
174
-
175
- drag.style.left = event.pageX - x + "px";
176
-
177
-
178
-
179
- //マウスボタンが離されたとき、またはカーソルが外れたとき発火
180
-
181
- drag.addEventListener("mouseup", mup, false);
182
-
183
- document.body.addEventListener("mouseleave", mup, false);
184
-
185
- drag.addEventListener("touchend", mup, false);
186
-
187
- document.body.addEventListener("touchleave", mup, false);
188
-
189
-
190
-
191
- }
192
-
193
-
194
-
195
- //マウスボタンが上がったら発火
196
-
197
- function mup(e) {
198
-
199
- var drag = document.getElementsByClassName("drag")[0];
200
-
201
-
202
-
203
- //ムーブベントハンドラの消去
204
-
205
- document.body.removeEventListener("mousemove", mmove, false);
206
-
207
- drag.removeEventListener("mouseup", mup, false);
208
-
209
- document.body.removeEventListener("touchmove", mmove, false);
210
-
211
- drag.removeEventListener("touchend", mup, false);
212
-
213
-
214
-
215
- //クラス名 .drag も消す
216
-
217
- drag.classList.remove("drag","drag2","drag3");
218
-
219
- }
220
-
221
-
222
-
223
- }
224
-
225
- document.body.addEventListener( "click", function( event ) {
226
-
227
- var x = event.pageX ;
228
-
229
- var y = event.pageY ;
230
-
231
- } ) ;
232
-
233
-
234
-
235
- window.addEventListener("click", function(){
236
-
237
- let px = event.pageX; //クリックX
238
-
239
- let py = event.pageY; //クリックY
240
-
241
-
242
-
243
- let ox = window.pageXOffset; //スクロールX
244
-
245
- let oy = window.pageYOffset; //スクロールY
246
-
247
-
248
-
249
- let obj = document.elementFromPoint(px - ox, py - oy); //object
250
-
251
-
252
-
253
- let objX = obj.getBoundingClientRect().left; //objectのX
254
-
255
- let objY = obj.getBoundingClientRect().top; //objectのY
256
-
257
-
258
-
259
- console.log("クリックした位置のX座標 x:" + (px-ox));
260
-
261
- console.log("クリックした位置のY座標 y:" + (py-oy));
262
-
263
- console.log("クリックした要素のX座標 x:" + objX);
264
-
265
- console.log("クリックした要素のY座標 y:" + objY);
266
-
267
- });
268
-
269
-
270
-
271
-
272
-
273
- document.getElementById("target").addEventListener('click', function(event) {
274
-
275
- var kimetu = event.pageX ; // 水平の位置座標
276
-
277
- var yaiba = event.pageY ; // 垂直の位置座標
278
-
279
- document.getElementsByName('zahyou')[0].value = kimetu + ":" + yaiba;
280
-
281
- });
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
- function muuXY(e, that) {
290
-
291
- if (!e) e = window.event;
292
-
293
- var x, y;
294
-
295
- if (e.targetTouches) {
296
-
297
- x = e.targetTouches[0].pageX - e.target.offsetLeft;
298
-
299
- y = e.targetTouches[0].pageY - e.target.offsetTop;
300
-
301
- }else if (that){
302
-
303
- x = e.pageX - that.offsetLeft;
304
-
305
- y = e.pageY - that.offsetTop;
306
-
307
- }
308
-
309
- return [x,y];
310
-
311
- }
312
-
313
-
314
-
315
- ```

1

文法の修正

2019/11/29 02:56

投稿

minomonnta
minomonnta

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,6 @@
1
- 要素A、要素B、要素C・・・という風に追加削除したい
1
+ 追加ボタン、削除ボタンそれぞれクリックすると
2
-
2
+
3
- 追加、削除したきにテキストボックスも連動してできるようにしたい
3
+ 要素とテキストボックスがそれぞれ、追加、削除されるようにしたい
4
-
5
-
6
-
7
-
8
4
 
9
5
  ```html
10
6
 
@@ -12,11 +8,15 @@
12
8
 
13
9
  <div class="drag-and-drop" id="target" style="top:1;left:0px;background-color:#ffa500;">要素A</div>
14
10
 
11
+
12
+
13
+ //追加ボタン
14
+
15
- <div class="drag-and-drop2" id="target2" style="top:1;left:110px;background-color:#ffa500;">要素B</div>
15
+ <input type="button" value="追加">
16
+
16
-
17
+ //削除ボタン
18
+
17
- <div class="drag-and-drop3" id="target3" style="top:1;left:220px;background-color:#ffa500;">要素C</div>
19
+ <input type="button" value="削除">
18
-
19
-
20
20
 
21
21
 
22
22
 
@@ -36,32 +36,22 @@
36
36
 
37
37
  </p>
38
38
 
39
+
40
+
41
+  //送信
42
+
39
43
  <p>
40
44
 
41
- 要素B
42
-
43
- <input type="text" value="クリックしてね☆" name="zahyou2">
45
+ <input type="submit" value="次へ" name="send">
44
46
 
45
47
  </p>
46
48
 
47
- <p>
48
-
49
- 要素C
50
-
51
- <input type="text" value="クリックしてね☆" name="zahyou3">
52
-
53
-
54
-
55
-  //送信
56
-
57
- <p>
58
-
59
- <input type="submit" value="次へ" name="send">
60
-
61
- </p>
62
-
63
49
  ```
64
50
 
51
+
52
+
53
+
54
+
65
55
  ```javascript
66
56
 
67
57
  window.onload = function() {
@@ -72,9 +62,7 @@
72
62
 
73
63
  var elements = document.getElementsByClassName("drag-and-drop");
74
64
 
75
- var elements2 = document.getElementsByClassName("drag-and-drop2");
65
+
76
-
77
- var elements3 = document.getElementsByClassName("drag-and-drop3");
78
66
 
79
67
 
80
68
 
@@ -96,26 +84,6 @@
96
84
 
97
85
  }
98
86
 
99
- //マウスが要素内で押されたとき、又はタッチされたとき発火
100
-
101
- for(var i = 0; i < elements.length; i++) {
102
-
103
- elements2[i].addEventListener("mousedown", mdown, false);
104
-
105
- elements2[i].addEventListener("touchstart", mdown, false);
106
-
107
- }
108
-
109
- //マウスが要素内で押されたとき、又はタッチされたとき発火
110
-
111
- for(var i = 0; i < elements.length; i++) {
112
-
113
- elements3[i].addEventListener("mousedown", mdown, false);
114
-
115
- elements3[i].addEventListener("touchstart", mdown, false);
116
-
117
- }
118
-
119
87
 
120
88
 
121
89
 
@@ -130,13 +98,7 @@
130
98
 
131
99
  this.classList.add("drag");
132
100
 
133
- //クラス名に .drag2 を追加
101
+
134
-
135
- this.classList.add("drag2");
136
-
137
- //クラス名に .drag3 を追加
138
-
139
- this.classList.add("drag3");
140
102
 
141
103
 
142
104
 
@@ -182,13 +144,7 @@
182
144
 
183
145
  var drag = document.getElementsByClassName("drag")[0];
184
146
 
185
- //ドラッグしている要素を取得
147
+
186
-
187
- var drag2 = document.getElementsByClassName("drag2")[0];
188
-
189
- //ドラッグしている要素を取得
190
-
191
- var drag3 = document.getElementsByClassName("drag3")[0];
192
148
 
193
149
 
194
150
 
@@ -240,7 +196,7 @@
240
196
 
241
197
  function mup(e) {
242
198
 
243
- var drag = document.getElementsByClassName("drag","drag2","drag3")[0];
199
+ var drag = document.getElementsByClassName("drag")[0];
244
200
 
245
201
 
246
202
 
@@ -326,27 +282,7 @@
326
282
 
327
283
 
328
284
 
329
- document.getElementById( "target2" ).addEventListener('click', function(event) {
285
+
330
-
331
- var kuroko = event.pageX ; // 水平の位置座標
332
-
333
- var basuke = event.pageY ; // 垂直の位置座標
334
-
335
- document.getElementsByName('zahyou2')[0].value = kuroko + ":" + basuke;
336
-
337
- });
338
-
339
-
340
-
341
- document.getElementById( "target3" ).addEventListener('click', function(event) {
342
-
343
- var saikikusuo = event.pageX ; // 水平の位置座標
344
-
345
- var sainann = event.pageY ; // 垂直の位置座標
346
-
347
- document.getElementsByName('zahyou3')[0].value = saikikusuo + ":" + sainann;
348
-
349
- });
350
286
 
351
287
 
352
288