質問編集履歴
3
内容を追記しました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【jQuery】
|
1
|
+
【jQuery】フリックの条件分岐について教えていただきたいです
|
body
CHANGED
@@ -115,4 +115,64 @@
|
|
115
115
|
})();
|
116
116
|
});
|
117
117
|
</script>
|
118
|
+
```
|
119
|
+
|
120
|
+
### 動作する仕様書に書いてあるJavaScript
|
121
|
+
```script
|
122
|
+
$(function(){
|
123
|
+
var h=$(".swipe-photo-thumbnail").width(),
|
124
|
+
a=$(".swipe-photo-item").length,
|
125
|
+
k=[],
|
126
|
+
d={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};
|
127
|
+
|
128
|
+
|
129
|
+
for(var c=0; c<=a; c++){
|
130
|
+
k[c] = -c*h
|
131
|
+
}
|
132
|
+
|
133
|
+
|
134
|
+
$(".swipe-photo-container").width(h*a);
|
135
|
+
|
136
|
+
|
137
|
+
// 指に触ったときの処理
|
138
|
+
$(".swipe-photo-item").on({touchstart:function(event){
|
139
|
+
d.thisX=parseInt($(".swipe-photo-container").css("left"));
|
140
|
+
d.startX=event.originalEvent.changedTouches[0].pageX-d.thisX
|
141
|
+
},
|
142
|
+
|
143
|
+
|
144
|
+
// 指を動かしてるときの処理
|
145
|
+
touchmove:function(event){
|
146
|
+
event.preventDefault();
|
147
|
+
d.x=event.originalEvent.changedTouches[0].pageX;
|
148
|
+
|
149
|
+
if(d.x-d.startX >= 0){
|
150
|
+
d.moveX=0
|
151
|
+
}else{
|
152
|
+
if(d.x-d.startX <= k[a-1]){
|
153
|
+
d.moveX=k[a-1]
|
154
|
+
}else{
|
155
|
+
d.moveX = d.x-d.startX
|
156
|
+
}
|
157
|
+
}
|
158
|
+
$(".swipe-photo-container").css({left:d.moveX})
|
159
|
+
},
|
160
|
+
|
161
|
+
|
162
|
+
// 指を離したときの処理
|
163
|
+
touchend:function(n){
|
164
|
+
var m = "";
|
165
|
+
|
166
|
+
for(var l=0; l<a; l++){
|
167
|
+
if(k[l]+(h/2) > d.moveX && d.moveX >= k[l+1]+(h/2)){
|
168
|
+
m=l
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
$(".swipe-photo-container").animate({
|
174
|
+
left:k[m]
|
175
|
+
},400)}
|
176
|
+
})
|
177
|
+
});
|
118
178
|
```
|
2
flickEndのイベント処理を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -83,10 +83,10 @@
|
|
83
83
|
|
84
84
|
// 指を離したときの処理
|
85
85
|
flickEnd = function flickEnd(event){
|
86
|
-
if (diffX
|
86
|
+
if (diffX < slideWidth/2){ // 右から左にフリックしたサムネイル画像の移動距離が半分を超えたら左に移動
|
87
87
|
左にスライドする処理
|
88
88
|
sliding();
|
89
|
-
} else if(diffX
|
89
|
+
} else if(diffX > slideWidth/2){ // 左から右にフリックしたサムネイル画像の移動距離が半分を超えたら右に移動
|
90
90
|
右にスライドする処理
|
91
91
|
sliding();
|
92
92
|
}
|
1
参考記事追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
jQueryでフリックの実装をしているのですが、画像を右から左に(左から右に)半分以上動かしたら画像が動くという処理が上手く書けないため質問させていただきました。
|
2
2
|
指を離したときの条件分岐をどのように書けべ良いかを教えていただけると幸いです。
|
3
|
+
参考にした[記事](http://doshirouto.wp.xdomain.jp/web/javascript-web/1726)
|
3
4
|
|
4
5
|
### やってみたこと
|
5
6
|
|