This repository was archived by the owner on Jul 12, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathmousewheel.js
More file actions
52 lines (47 loc) · 1.36 KB
/
mousewheel.js
File metadata and controls
52 lines (47 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* angular-mousewheel v1.0.5
* (c) 2013 Monospaced http://monospaced.com
* License: MIT
*/
angular.module('monospaced.mousewheel', [])
.directive('msdWheel', ['$parse', function($parse){
return {
restrict: 'A, C',
link: function(scope, element, attr) {
var expr = $parse(attr['msdWheel']),
fn = function(event, delta, deltaX, deltaY){
scope.$apply(function(){
expr(scope, {
$event: event,
$delta: delta,
$deltaX: deltaX,
$deltaY: deltaY
});
});
},
hamster;
if (typeof Hamster === 'undefined') {
// fallback to standard wheel event
element.bind('wheel', function(event){
scope.$apply(function() {
expr(scope, {
$event: event
});
});
});
return;
}
// don't create multiple Hamster instances per element
if (!(hamster = element.data('hamster'))) {
hamster = Hamster(element[0]);
element.data('hamster', hamster);
}
// bind Hamster wheel event
hamster.wheel(fn);
// unbind Hamster wheel event
scope.$on('$destroy', function(){
hamster.unwheel(fn);
});
}
};
}]);