AngularJS directive that adds support for multi touch gestures to your app. Based on hammer.js.
AngularJS directive that adds support for multi touch gestures to your app, based on hammer.js.
gestures.js
or gestures.min.js
into your page'angular-gestures'
as a dependency for your angular app: angular.module('myApp', ['angular-gestures']);
hammerDefaultOptsProvider.set({recognizers: [[Hammer.Tap, {time: 250}]] });
ng-click
: e.g. hm-tap
<button hm-tap="add_something()">Tap me</button>
hm-swipe="remove_something({{ id }})"
hm-tap-opts="{hold: false}"
Note that hammer.js is an additional requirement and is not included in angular-gestures
.
Pass the $event
object in the usual way e.g. hm-drag="myDrag($event)"
then access its internals like so:
$scope.myDrag = function(event) {
console.log(event.gesture);
}
Refer to the Hammer.js docs for more details on the properties of event
.
All Hammerjs events are supported. The corresponding Angularjs attribute has hm-
prepended to the name. So for example, the ‘doubletap’ event becomes hm-double-tap
etc.
Attention : *end and *start events are NOT CamelCased because of issues caused by $animate interference.
To set recognizer default options you can use hammerDefaultOptsProvider
. Access it like in the demo:
angular.module('angularGesturesDemoApp', ['angular-gestures', 'ngRoute'])
.config(function ($routeProvider, hammerDefaultOptsProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/'
});
hammerDefaultOptsProvider.set({
recognizers: [[Hammer.Tap, {time: 250}]]
});
});
If you want to use angular-momentum-scroll with bower, add the following dependency to your component.json
"angular-gestures": "latest"
angular-gestures has support for Require.js/AMD/Node.js. When using AMD modules, make sure that you define
hammer.js using Hammer
, same goes for node.js
. If you are not using Require.js/AMD/Node.js, angular-gestures
will fall back to using the global Hammer
/angular
objects.