Skip to content

Commit da4523e

Browse files
committedSep 9, 2014
fix touch vertical page scrolling
1 parent 6f3af10 commit da4523e

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed
 

‎css/jquery.excoloSlider.css

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
.slider {
44
border: 1px solid #ccc;
55
padding: 10px;
6+
-webkit-user-select: none;
67
}
78

89
.slide > * {

‎js/jquery.excoloSlider.js

+18-7
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
base.config = $.extend({}, base.defaults, base.options, base.metadata);
7575
base.actionClick={action:false,x:0,y:0};
7676
base.currClick={x:0,y:0};
77+
base.scroll=null;
7778

7879
// Initialize plugin data
7980
base.data = $.data(base);
@@ -207,21 +208,30 @@
207208
if (base.config.touchNav) {
208209
$container.on("touchstart", function (e) {
209210
var eventData = e.originalEvent.touches[0];
210-
e.preventDefault();
211211
base._onMoveStart(eventData.pageX, eventData.pageY);
212212
base.actionClick.x=base.currClick.x=eventData.pageX;
213213
base.actionClick.y=base.currClick.y=eventData.pageY;
214214
base.actionClick.action=true;
215-
return e.stopPropagation();
215+
base.scroll=null;
216216
});
217217
$container.on("touchmove", function (e) {
218218
var eventData = e.originalEvent.touches[0];
219-
e.preventDefault();
220-
base.actionClick.action=false;
221-
base._onMove(eventData.pageX, eventData.pageY);
222-
base.currClick.x=eventData.pageX;
219+
base.currClick.x=eventData.pageX;
223220
base.currClick.y=eventData.pageY;
224-
return e.stopPropagation();
221+
if (base.scroll==null){
222+
var dx = Math.abs(base.actionClick.x-base.currClick.x);
223+
var dy = Math.abs(base.actionClick.y-base.currClick.y);
224+
if (dx<dy){
225+
base.scroll=true;
226+
}
227+
else{base.scroll=false;}
228+
}
229+
if (!base.scroll){
230+
e.preventDefault();
231+
base.actionClick.action=false;
232+
base._onMove(eventData.pageX, eventData.pageY);
233+
return e.stopPropagation();
234+
}
225235
});
226236
$container.on("touchend", function (e) {
227237
if ((base.actionClick.action==true)&&(base.actionClick.x==base.currClick.x)&&(base.actionClick.y==base.currClick.y)){
@@ -232,6 +242,7 @@
232242
}
233243
e.preventDefault();
234244
base._onMoveEnd();
245+
base.scroll=null;
235246
return e.stopPropagation();
236247
});
237248
}

0 commit comments

Comments
 (0)
Please sign in to comment.