|
@@ -25,7 +25,8 @@ var Reveal = (function(){
|
|
|
mouseWheel: true,
|
|
|
rollingLinks: true,
|
|
|
transition: 'default',
|
|
|
- theme: 'default'
|
|
|
+ theme: 'default',
|
|
|
+ swipeDistance: 30
|
|
|
},
|
|
|
|
|
|
|
|
@@ -82,6 +83,8 @@ var Reveal = (function(){
|
|
|
|
|
|
document.addEventListener( 'keydown', onDocumentKeyDown, false );
|
|
|
document.addEventListener( 'touchstart', onDocumentTouchStart, false );
|
|
|
+ document.addEventListener( 'touchmove', onDocumentTouchMove, false );
|
|
|
+ document.addEventListener( 'touchend', onDocumentTouchEnd, false );
|
|
|
window.addEventListener( 'hashchange', onWindowHashChange, false );
|
|
|
dom.controlsLeft.addEventListener( 'click', preventAndForward( navigateLeft ), false );
|
|
|
dom.controlsRight.addEventListener( 'click', preventAndForward( navigateRight ), false );
|
|
@@ -235,6 +238,8 @@ var Reveal = (function(){
|
|
|
*
|
|
|
* @param {Object} event
|
|
|
*/
|
|
|
+ var touchStart = {}
|
|
|
+ var gesture = false;
|
|
|
function onDocumentTouchStart( event ) {
|
|
|
|
|
|
if (event.touches.length === 1) {
|
|
@@ -245,34 +250,66 @@ var Reveal = (function(){
|
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
- var point = {
|
|
|
+ touchStart = {
|
|
|
x: event.touches[0].clientX,
|
|
|
y: event.touches[0].clientY
|
|
|
};
|
|
|
|
|
|
+ slide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function onDocumentTouchMove( event ) {
|
|
|
+
|
|
|
+ event.preventDefault();
|
|
|
+
|
|
|
+ if(!gesture) {
|
|
|
+ var touch = {
|
|
|
+ x: event.touches[0].clientX,
|
|
|
+ y: event.touches[0].clientY
|
|
|
+ };
|
|
|
+ if((touch.x - touchStart.x) > config.swipeDistance){
|
|
|
+ gesture = true;
|
|
|
+ navigateLeft();
|
|
|
+ } else if((touch.x - touchStart.x) < -config.swipeDistance){
|
|
|
+ gesture = true;
|
|
|
+ navigateRight();
|
|
|
+ } else if((touch.y - touchStart.y) > config.swipeDistance){
|
|
|
+ gesture = true;
|
|
|
+ navigateUp();
|
|
|
+ } else if((touch.y - touchStart.y) < -config.swipeDistance){
|
|
|
+ gesture = true;
|
|
|
+ navigateDown();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function onDocumentTouchEnd( event ) {
|
|
|
+
|
|
|
+ event.preventDefault();
|
|
|
+
|
|
|
+ if(!gesture){
|
|
|
+
|
|
|
|
|
|
|
|
|
var wt = window.innerWidth * 0.3;
|
|
|
var ht = window.innerHeight * 0.3;
|
|
|
|
|
|
- if( point.x < wt ) {
|
|
|
+ if( touchStart.x < wt ) {
|
|
|
navigateLeft();
|
|
|
}
|
|
|
- else if( point.x > window.innerWidth - wt ) {
|
|
|
+ else if( touchStart.x > window.innerWidth - wt ) {
|
|
|
navigateRight();
|
|
|
}
|
|
|
- else if( point.y < ht ) {
|
|
|
+ else if( touchStart.y < ht ) {
|
|
|
navigateUp();
|
|
|
}
|
|
|
- else if( point.y > window.innerHeight - ht ) {
|
|
|
+ else if( touchStart.y > window.innerHeight - ht ) {
|
|
|
navigateDown();
|
|
|
}
|
|
|
-
|
|
|
- slide();
|
|
|
}
|
|
|
+ gesture = false;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
* Handles mouse wheel scrolling, throttled to avoid
|
|
|
* skipping multiple slides.
|