$swipe
ngTouch
The $swipe
service is a service that abstracts the messier details of hold-and-drag swipe
behavior, to make implementing swipe-related directives more convenient.
Requires the ngTouch
module to be installed.
$swipe
is used by the ngSwipeLeft
and ngSwipeRight
directives in ngTouch
, and by
ngCarousel
in a separate component.
The $swipe
service is an object with a single method: bind
. bind
takes an element
which is to be watched for swipes, and an object with four handler functions. See the
documentation for bind
below.
The main method of $swipe
. It takes an element to be watched for swipe motions, and an
object containing event handlers.
The four events are start
, move
, end
, and cancel
. start
, move
, and end
receive as a parameter a coordinates object of the form { x: 150, y: 310 }
.
start
is called on either mousedown
or touchstart
. After this event, $swipe
is
watching for touchmove
or mousemove
events. These events are ignored until the total
distance moved in either dimension exceeds a small threshold.
Once this threshold is exceeded, either the horizontal or vertical delta is greater.
- If the horizontal distance is greater, this is a swipe and move
and end
events follow.
- If the vertical distance is greater, this is a scroll, and we let the browser take over.
A cancel
event is sent.
move
is called on mousemove
and touchmove
after the above logic has determined that
a swipe is in progress.
end
is called when a swipe is successfully completed with a touchend
or mouseup
.
cancel
is called either on a touchcancel
from the browser, or when we begin scrolling
as described above.