UNPKG

1.9 kBJavaScriptView Raw
1/**
2 * Register a touch event, taking place before a gesture
3 * @param {Hammer} hammer A hammer instance
4 * @param {function} callback Callback, called as callback(event)
5 */
6exports.onTouch = function (hammer, callback) {
7 callback.inputHandler = function (event) {
8 if (event.isFirst) {
9 callback(event);
10 }
11 };
12
13 hammer.on('hammer.input', callback.inputHandler);
14};
15
16/**
17 * Register a release event, taking place after a gesture
18 * @param {Hammer} hammer A hammer instance
19 * @param {function} callback Callback, called as callback(event)
20 * @returns {*}
21 */
22exports.onRelease = function (hammer, callback) {
23 callback.inputHandler = function (event) {
24 if (event.isFinal) {
25 callback(event);
26 }
27 };
28
29 return hammer.on('hammer.input', callback.inputHandler);
30};
31
32
33/**
34 * Unregister a touch event, taking place before a gesture
35 * @param {Hammer} hammer A hammer instance
36 * @param {function} callback Callback, called as callback(event)
37 */
38exports.offTouch = function (hammer, callback) {
39 hammer.off('hammer.input', callback.inputHandler);
40};
41
42/**
43 * Unregister a release event, taking place before a gesture
44 * @param {Hammer} hammer A hammer instance
45 * @param {function} callback Callback, called as callback(event)
46 */
47exports.offRelease = exports.offTouch;
48
49/**
50 * Hack the PinchRecognizer such that it doesn't prevent default behavior
51 * for vertical panning.
52 *
53 * Yeah ... this is quite a hack ... see https://github.com/hammerjs/hammer.js/issues/932
54 *
55 * @param {Hammer.Pinch} pinchRecognizer
56 * @return {Hammer.Pinch} returns the pinchRecognizer
57 */
58exports.disablePreventDefaultVertically = function (pinchRecognizer) {
59 var TOUCH_ACTION_PAN_Y = 'pan-y';
60
61 pinchRecognizer.getTouchAction = function() {
62 // default method returns [TOUCH_ACTION_NONE]
63 return [TOUCH_ACTION_PAN_Y];
64 };
65
66 return pinchRecognizer;
67};