Extend hammer.js with event propagation
npm install propagating-hammerjsExtend hammer.js (v2) with event propagation.
We use the @egjs/hammerjs fork because hammer.js is not maintained anymore.
- Events emitted by hammer will propagate in order from child to parent
elements.
- Events are extended with a function event.stopPropagation() to stop
propagation to parent elements.
- Events are extended with a property event.firstTarget containing the
element where a gesture started.
- Supports changing and rearranging the HTML DOM on the fly.
- Load via commonjs, AMD, or as a plain old JavaScript file.
``sh`
npm install @egjs/hammerjs propagating-hammerjs
`html`
`js
var Hammer = require('@egjs/hammerjs');
var propagating = require('propagating-hammerjs');
function init() {
var hammer = propagating(new Hammer(element));
}
`
`typescript
import Hammer from '@egjs/hammerjs';
import propagating from 'propagating-hammerjs';
function init() {
const hammer = propagating(new Hammer(element));
}
`
To extend individual hammer.js instances with event propagation:
`js`
var hammer = propagating(new Hammer(element));
To extend the global hammer.js constructor
`js`
Hammer = propagating(Hammer);
Here a basic usage example.
More examples are available in the folder /examples.
`html
`
Construction:
`typescript`
propagating(hammer: Hammer.Manager, options?: {
preventDefault?: true | 'mouse' | 'touch' | 'pen'
}): Hammer.Manager
- hammer: Hammer.Manager An hammer instance or the global hammer constructor.
- options: Object An optional object with options. Available options:
- preventDefault: true | 'mouse' | 'touch' | 'pen'. Optional.false
Enforce preventing the default browser behavior. Cannot be set to .
Returns the same hammer instance with extended functionality.
The emitted hammer.js events are
extended with:
- event.stopPropagation()
If called, the event will not further propagate the elements parents.
- event.firstTarget
Contains the HTML element where a gesture started (where as event.target
contains the element where the pointer is right now).
To generate the UMD bundle for commonjs and browser, run:
`sh``
npm run build
MIT