Skip to content

Instantly share code, notes, and snippets.

@jarodium
Created October 23, 2017 13:10
Show Gist options
  • Select an option

  • Save jarodium/85cfb6d62e29e693c79cdb943f3194f2 to your computer and use it in GitHub Desktop.

Select an option

Save jarodium/85cfb6d62e29e693c79cdb943f3194f2 to your computer and use it in GitHub Desktop.
Updated version of swipe.js from Blake Simpson's Blog. This version supports miltitouch
$.fn.swipe = function( callback ) {
var touchDown = false,
originalPosition = null,
$el = $( this );
function swipeInfo( event ) {
if ('undefined' !== typeof event.originalEvent.pageX) {
var x = event.originalEvent.pageX,
y = event.originalEvent.pageY,
dx, dy;
}else{
var x = event.originalEvent.touches[0].pageX,
y = event.originalEvent.touches[0].pageY,
dx, dy;
}
dx = ( x > originalPosition.x ) ? "right" : "left";
dy = ( y > originalPosition.y ) ? "down" : "up";
return {
direction: {
x: dx,
y: dy
},
offset: {
x: x - originalPosition.x,
y: originalPosition.y - y
}
};
}
$el.on( "touchstart mousedown", function ( event ) {
touchDown = true;
if ('undefined' !== typeof event.originalEvent.pageX) {
originalPosition = {
x: event.originalEvent.pageX,
y: event.originalEvent.pageY
};
}else{
originalPosition = {
x: event.originalEvent.touches[0].pageX,
y: event.originalEvent.touches[0].pageY
};
}
} );
$el.on( "touchend mouseup", function () {
touchDown = false;
originalPosition = null;
} );
$el.on( "touchmove mousemove", function ( event ) {
if ( !touchDown ) { return;}
var info = swipeInfo( event );
callback( info.direction, info.offset );
} );
return true;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment