diff --git a/public/js/photonav.js b/public/js/photonav.js index 8d43dac..b167132 100644 --- a/public/js/photonav.js +++ b/public/js/photonav.js @@ -30,21 +30,38 @@ function disableKeyDownPropagation(obj) { function enableTouchNavigation() { var x_down = null; var y_down = null; + var cancelled = false; document.addEventListener('touchstart', function(event) { + if (event.touches.length > 1) { + cancelled = true; + return; + } x_down = event.touches[0].clientX; y_down = event.touches[0].clientY; + cancelled = false; }, false); document.addEventListener('touchmove', function(event) { - if (!x_down || !y_down) { + if (event.touches.length > 1) { + cancelled = true; + } + }, false); + + document.addEventListener('touchend', function(event) { + if (cancelled || x_down === null || y_down === null) { + x_down = null; + y_down = null; return; } - var x_diff = x_down - event.touches[0].clientX; - var y_diff = y_down - event.touches[0].clientY; + var x_diff = x_down - event.changedTouches[0].clientX; + var y_diff = y_down - event.changedTouches[0].clientY; - if (Math.abs(y_diff) > 50) { + x_down = null; + y_down = null; + + if (Math.abs(x_diff) < 40 || Math.abs(y_diff) > 50) { return; } @@ -52,13 +69,11 @@ function enableTouchNavigation() { if (x_diff > 0) { var target = document.getElementById("previous_photo").href; if (target) { - event.preventDefault(); document.location.href = target + '#photo_frame'; } } else { var target = document.getElementById("next_photo").href; if (target) { - event.preventDefault(); document.location.href = target + '#photo_frame'; } }