angular-wheelie
v3.0.1
Published
Mousewheel as an angular service
Downloads
116
Readme
angular-wheelie
angular-wheelie exposes a service that allows you to bind wheel events to an angular element.
Installation
Install with bower:
bower install angular-wheelie
Or with npm:
npm install angular-wheelie
Or simply download the latest release.
Usage
The pre-built files can be found in the dist/
directory.
dist/angular-wheelie.min.js
is minified and production-ready. Example usage:
<script src="dist/angular-wheelie.min.js"></script>
Add wheelie
to your app's module dependencies:
angular.module('myapp', ['wheelie']);
And now you can use the wheelie
service in your controllers, directives,
services etc. Example usage in a controller:
app.controller('MyController', [ '$scope', 'wheelie', function ($scope, wheelie) {
var target = angular.element('#someElement');
// To listen for wheel events:
wheelie.bind(target, {
up: function (event) {
console.log('wheel up on element #someElement!');
// to prevent scrolling, use event.preventDefault();
},
right: function (event) { // i.e. with a trackpad
console.log('wheel right on element #someElement!');
},
down: function (event) {
console.log('wheel down on element #someElement!');
},
left: function (event) { // i.e. with a trackpad
console.log('wheel left on element #someElement!');
}
});
// To unbind:
$scope.on('$destroy', function () {
wheelie.unbind(target);
});
}]);
Not all callbacks are required, but at least one must be provided.
In the above example, all wheel events from #someElement
will trigger one of
the callbacks. To ignore wheel events from a nested element, pass the nested
element's class-name as the third parameter:
app.controller('MyController', [ '$scope', 'wheelie', function ($scope, wheelie) {
var target = angular.element('#someElement');
var callbacks = { /* up, right, down, left callbacks */ };
var classNameToIgnore = 'some-nested-elements';
wheelie.bind(target, callbacks, classNameToIgnore);
}]);
Contributing
Contributions are welcomed! Here are the contribution guidelines.
First clone the repository and install dependencies:
npm install
To run tests:
npm test
To lint the code:
npm run lint
To make a production build:
npm run build