質問編集履歴

4

タイトル変更

2019/12/13 04:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【jQuery】スワイプで定義した変数の意味を知りたいです。
1
+ 【jQuery】変数の意味を知りたいです。
test CHANGED
@@ -1,6 +1,6 @@
1
- スワイプ変数を宣言しているd={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};と書いた理由が分からなかったので教えていただきたいです。
1
+ スワイプ実装で変数d={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};と書く意図が分からなかったので教えていただきたいです。
2
-
2
+
3
- 動作確認はできています。
3
+ 動作はできています。
4
4
 
5
5
 
6
6
 

3

質問内容を変更しました

2019/12/13 04:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【jQuery】ドラッグしたときに画像が動くようにしたいです。
1
+ 【jQuery】スワイプで定義した変数の意味を知りたいです。
test CHANGED
@@ -1,12 +1,8 @@
1
- jQueryのフリックを実装しているのですが、ドラッグしたときの処理が私の書いたコードを仕様書のコードと同じ挙動にしたいです。
2
-
3
- 画像フリックと同時に画像が左右に動く挙動にいといけないのですが、私が書いたコードですとフリックしたスライドショーのよう挙動になってします。
1
+ スワイプの変数宣言るd={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};と書いた理由が分からなたので教えていただきたいです。
4
-
5
- どうすれば画像をタッチしたのと同時に画像が左右に動く挙動になるのかを教えていただきたいです。
2
+
6
-
7
-
8
-
9
- ### 私が書たコード
3
+ 動作確認はできてます。
4
+
5
+
10
6
 
11
7
  ```html
12
8
 
@@ -58,330 +54,164 @@
58
54
 
59
55
  <script type="text/javascript">
60
56
 
57
+ </script>
58
+
61
- /**
59
+ </body>
62
-
63
- * (説明)
60
+
64
-
65
- * @type {number} slideWidth ← .swipe-photo-itemの幅を取得して代入
66
-
67
- * @type {string} slideNum ← .swipe-photo-itemの数を取得して代入
68
-
69
- * @type {number} slideSetWidth ← .swipe-photo-itemの幅×数で求めた値を代入
70
-
71
- * @type {number} slideCurrent ← 現在地を示す変数
72
-
73
- * @type {string} deirection ← スワイプしたときの方向
74
-
75
- * @type {string} position ← 横方向の座標の変数
76
-
77
- *
78
-
79
- *
80
-
81
- *
82
-
83
- **/
61
+ </html>
62
+
63
+
64
+
84
-
65
+ ```
66
+
67
+
68
+
85
-
69
+ ### 該当のコード
70
+
71
+ ```script
86
72
 
87
73
  $(function(){
88
74
 
89
- var flickStart, flickMove, flickEnd;
90
-
91
-
92
-
93
- $(".swipe-photo-item").on({
94
-
95
- "touchstart": function(event){
96
-
97
- flickStart(event);
98
-
99
- },
100
-
101
- "touchmove": function(event){
102
-
103
- flickMove(event);
104
-
105
- },
106
-
107
- "touchend": function(event){
108
-
109
- flickEnd(event);
110
-
111
- }
112
-
113
- });
114
-
115
-
116
-
117
- (function(){
118
-
119
- var slideWidth = $('.swipe-photo-item').outerWidth();
120
-
121
- var slideNum = $('.swipe-photo-item').length;
122
-
123
- var slideSetWidth = slideWidth * slideNum;
124
-
125
- var slideCurrent = 0;
126
-
127
- var direction, position;
128
-
129
-
130
-
131
- // .swipe-photo-containerのスタイルシートにwidth: 上の変数を指定
132
-
133
- $('.swipe-photo-container').css('width', slideSetWidth);
134
-
135
-
136
-
137
- // アニメーションを実行する即時変数
138
-
139
- var sliding = function sliding(){
140
-
141
- // slideCurrentが0以下の場合
142
-
143
- if(slideCurrent<0){
144
-
145
- slideCurrent = 0;
146
-
147
-
148
-
149
- // slideCurrentがslideNumを超えたら
150
-
151
- }else if(slideCurrent > slideNum - 1){
152
-
153
- slideCurrent = 5;
154
-
155
- }
156
-
157
- $('.swipe-photo-container').animate({
158
-
159
- left: slideCurrent * -slideWidth
160
-
161
- });
162
-
163
- }
164
-
165
-
166
-
167
- // タッチイベントの処理内容
168
-
169
- flickStart = function flickStart(event){
170
-
171
- position = getPosition(event);
172
-
173
- direction = ''; // 一度リセットする
174
-
175
- }
176
-
177
-
178
-
179
- flickMove = function flickMove(event){
180
-
181
- if(position - getPosition(event) > 1){
182
-
183
- direction = 'left';
184
-
185
- }else if(position - getPosition(event) < 1){
186
-
187
- direction = 'right';
188
-
189
- }
190
-
191
- }
192
-
193
-
194
-
195
- flickEnd = function flickEnd(event){
196
-
197
- if(direction=='right'){
198
-
199
- slideCurrent--;
200
-
201
- sliding();
202
-
203
- }else if(direction=='left'){
204
-
205
- slideCurrent++;
206
-
207
- sliding();
208
-
209
- }
210
-
211
- }
212
-
213
-
214
-
215
- // 横方向の座標を取得
216
-
217
- getPosition = function getPosition(event){
218
-
219
- return event.originalEvent.changedTouches[0].pageX;
220
-
221
- }
222
-
223
- })();
224
-
225
- });
226
-
227
- </script>
228
-
229
- </body>
230
-
231
- </html>
232
-
233
-
75
+ var b=$(".swipe-photo"),
76
+
77
+ f=b.find(".swipe-photo-container"),
78
+
79
+ j=b.find(".swipe-photo-item"),
80
+
81
+ e=j.find(".swipe-photo-thumbnail"),
82
+
83
+ h=e.width(),
84
+
85
+ a=j.length,
86
+
87
+ k=[],
88
+
89
+ d={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};
90
+
91
+
92
+
93
+ for(var c=0;c<=a;c++){
94
+
95
+ k[c]=-c*h
96
+
97
+ }
98
+
99
+
100
+
101
+ $(".swipe-photo-container").width(h*a);
102
+
103
+
104
+
105
+ j.on({touchstart:function(i){
106
+
107
+ d.thisX=parseInt($(".swipe-photo-container").css("left"));
108
+
109
+ d.startX=i.originalEvent.changedTouches[0].pageX-d.thisX
110
+
111
+ },
112
+
113
+
114
+
115
+ touchmove:function(i){
116
+
117
+ i.preventDefault();
118
+
119
+ d.x=i.originalEvent.changedTouches[0].pageX;
120
+
121
+
122
+
123
+ if(d.x-d.startX>=0){
124
+
125
+ d.moveX=0
126
+
127
+ }else{
128
+
129
+ if(d.x-d.startX<=k[a-1]){
130
+
131
+ d.moveX=k[a-1]
132
+
133
+ }else{
134
+
135
+ d.moveX=d.x-d.startX
136
+
137
+ }
138
+
139
+ }
140
+
141
+ $(".swipe-photo-container").css({left:d.moveX})
142
+
143
+ },
144
+
145
+
146
+
147
+ touchend:function(n){
148
+
149
+ var m="";
150
+
151
+
152
+
153
+ for(var l=0;l<a;l++){
154
+
155
+ if(k[l]+(h/2)>d.moveX&&d.moveX>=k[l+1]+(h/2))
156
+
157
+ {m=l}}
158
+
159
+ $(".swipe-photo-container").animate({
160
+
161
+ left:k[m]
162
+
163
+ },400)}
164
+
165
+ })
166
+
167
+ });
234
168
 
235
169
  ```
236
170
 
237
171
 
238
172
 
239
- ### 仕様書のコード
240
-
241
- ```script
242
-
243
- $(function(){
244
-
245
- var b=$(".swipe-photo"),
246
-
247
- f=b.find(".swipe-photo-container"),
248
-
249
- j=b.find(".swipe-photo-item"),
250
-
251
- e=j.find(".swipe-photo-thumbnail"),
252
-
253
- h=e.width(),
254
-
255
- a=j.length,
256
-
257
- k=[],
258
-
259
- d={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};
260
-
261
-
262
-
263
- for(var c=0;c<=a;c++){
264
-
265
- k[c]=-c*h
266
-
267
- }
268
-
269
-
270
-
271
- $(".swipe-photo-container").width(h*a);
272
-
273
-
274
-
275
- j.on({touchstart:function(i){
276
-
277
- d.thisX=parseInt($(".swipe-photo-container").css("left"));
278
-
279
- d.startX=i.originalEvent.changedTouches[0].pageX-d.thisX
280
-
281
- },
282
-
283
-
284
-
285
- touchmove:function(i){
286
-
287
- i.preventDefault();
288
-
289
- d.x=i.originalEvent.changedTouches[0].pageX;
290
-
291
-
292
-
293
- if(d.x-d.startX>=0){
294
-
295
- d.moveX=0
296
-
297
- }else{
298
-
299
- if(d.x-d.startX<=k[a-1]){
300
-
301
- d.moveX=k[a-1]
302
-
303
- }else{
304
-
305
- d.moveX=d.x-d.startX
306
-
307
- }
308
-
309
- }
310
-
311
- $(".swipe-photo-container").css({left:d.moveX})
312
-
313
- },
314
-
315
-
316
-
317
- touchend:function(n){
318
-
319
- var m="";
320
-
321
-
322
-
323
- for(var l=0;l<a;l++){
324
-
325
- if(k[l]+(h/2)>d.moveX&&d.moveX>=k[l+1]+(h/2))
326
-
327
- {m=l}}
328
-
329
- $(".swipe-photo-container").animate({
330
-
331
- left:k[m]
332
-
333
- },400)}
334
-
335
- })
336
-
337
- });
173
+ ### 共通CSS
174
+
175
+
176
+
177
+ ```css
178
+
179
+ .swipe-photo {
180
+
181
+ position: relative;
182
+
183
+ width: 320px;
184
+
185
+ height: 240px;
186
+
187
+ margin: 0 auto;
188
+
189
+ overflow: hidden;
190
+
191
+ }
192
+
193
+ .swipe-photo-container {
194
+
195
+ position: absolute;
196
+
197
+ top: 0;
198
+
199
+ left: 0;
200
+
201
+ }
202
+
203
+ .swipe-photo-item {
204
+
205
+ float: left;
206
+
207
+ }
208
+
209
+ .swipe-photo-thumbnail {
210
+
211
+ width: 320px;
212
+
213
+ height: 240px;
214
+
215
+ }
338
216
 
339
217
  ```
340
-
341
-
342
-
343
- ### 共通CSS
344
-
345
-
346
-
347
- ```css
348
-
349
- .swipe-photo {
350
-
351
- position: relative;
352
-
353
- width: 320px;
354
-
355
- height: 240px;
356
-
357
- margin: 0 auto;
358
-
359
- overflow: hidden;
360
-
361
- }
362
-
363
- .swipe-photo-container {
364
-
365
- position: absolute;
366
-
367
- top: 0;
368
-
369
- left: 0;
370
-
371
- }
372
-
373
- .swipe-photo-item {
374
-
375
- float: left;
376
-
377
- }
378
-
379
- .swipe-photo-thumbnail {
380
-
381
- width: 320px;
382
-
383
- height: 240px;
384
-
385
- }
386
-
387
- ```

2

タイトル変更

2019/12/13 03:24

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【jQuery】フリックの実装でドラッグしたときの処理ついて教えていだきたいです。
1
+ 【jQuery】ドラッグしたときに画像が動くようにしたいです。
test CHANGED
File without changes

1

内容修正

2019/12/12 09:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
- jQueryのフリックを実装しているのですが、ドラッグしたときの処理が私の書いたコードを仕様書のコードと同じ挙動にしたいです。
1
+ jQueryのフリックを実装しているのですが、ドラッグしたときの処理が私の書いたコードを仕様書のコードと同じ挙動にしたいです。
2
+
2
-
3
+ 画像をフリックと同時に画像が左右に動く挙動にしないといけないのですが、私が書いたコードですとフリックしたらスライドショーのような挙動になってしまいます。
4
+
3
- 私の書いたコードに何を追加すれば良いか教えていただきたいです。
5
+ どうすれば画像をタッチしたのと同時に画像が左右に動く挙動になるの教えていただきたいです。
4
6
 
5
7
 
6
8