View source Improve this doc

# `$swipe`
service in module `ngTouch`

## Description

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.

### Usage

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.

## Methods

- ### bind()

  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.