From db78a14340eec6af0bdbc33064fb14b7e9726aa6 Mon Sep 17 00:00:00 2001 From: Michael Ang Date: Thu, 21 Oct 2010 09:25:07 +0000 Subject: [PATCH] Improve swiping - swallow event when swipe detected so click handler doesn't trigger --- BookReader/BookReader.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/BookReader/BookReader.js b/BookReader/BookReader.js index 7eacf55..e7edc5e 100644 --- a/BookReader/BookReader.js +++ b/BookReader/BookReader.js @@ -3940,6 +3940,7 @@ BookReader.prototype.initSwipeData = function(clientX, clientY) { */ this._swipe = { mightBeSwiping: false, + didSwipe: false, startTime: (new Date).getTime(), startX: clientX, startY: clientY, @@ -3981,7 +3982,7 @@ BookReader.prototype.swipeMousemoveHandler = function(event) { var absY = Math.abs(_swipe.deltaY); // Minimum distance in the amount of tim to trigger the swipe - var minSwipeLength = Math.max($('#BookReader').width() / 5, 100); + var minSwipeLength = Math.min($('#BookReader').width() / 5, 50); var maxSwipeTime = 1000; // Check for horizontal swipe @@ -3989,6 +3990,7 @@ BookReader.prototype.swipeMousemoveHandler = function(event) { //console.log('swipe! ' + _swipe.deltaX + ',' + _swipe.deltaY + ' ' + _swipe.deltaT + 'ms'); _swipe.mightBeSwiping = false; // only trigger once + _swipe.didSwipe = true; if (event.data['br'].mode == event.data['br'].constMode2up) { if (_swipe.deltaX < 0) { event.data['br'].right(); @@ -3999,9 +4001,14 @@ BookReader.prototype.swipeMousemoveHandler = function(event) { } } BookReader.prototype.swipeMouseupHandler = function(event) { - //console.log('swipe mouseup'); - //console.log(event); - event.data['br']._swipe.mightBeSwiping = false; + var _swipe = event.data['br']._swipe; + //console.log('swipe mouseup - did swipe ' + _swipe.didSwipe); + _swipe.mightBeSwiping = false; + if (_swipe.didSwipe) { + // Swallow event if completed swipe gesture + event.preventDefault(); + event.stopPropagation(); + } } BookReader.prototype.bindMozTouchHandlers = function() { -- 2.20.1