@adoratorio/hermes v1.0.2
Hermes
A utility library for wheel events and touch event normalization
Installation
# Install package
npm install @adoratorio/hermesUsage
Since this package has a pkg.module field, it’s highly recommended to import it as an ES6 module with some bundlers like webpack or rollup:
import Hermes from '@adoratorio/hermes';
const hermes = new Hermes({ });If you are not using any bundlers, you can just load the UMD bundle:
<script src="/medusa/umd/index.js"></script>
<script>var medusa = window.Hermes({ });</script>Available options
Hermes accept in the constructor and option object with the following possible props.
| parameter | type | default | description |
|---|---|---|---|
| mode | string | Hermes.MODE.VIRTUAL | The mode to use when creating the instance, VIRTUAL will not use any DOM element to detect scroll but mousewheel events instead, FAKE will use a hook div underneath the content to detect scroll and NATIVE will use de DOM element declared as container tod etect scroll events |
| events | Array | [Hermes.EVENT.WHEEL, Hermes.EVENT.TOUCH, Hermes.EVENT.KEYS] | The events to listen to |
| container | HTMLElement | document.querySelector('.hermes-container') | The DOM element used as container to detect event on |
| hook | HTMLElement | document.querySelector('.hermes-hook') | The DOM element used as hook for scroll amount in FAKE mode |
| passive | boolean | true | If you want to use passive event listeners |
| emitGlobal | boolean | false | If you want to emit global event on the window |
| touchClass | string | '.prevent-touch' | The class used to prevent touch |
| touchMultiplier | number | 2 | A multiplier for touch values, less it's going to be slower scroll and require more user action to scroll, more will end up in a fast page scroll with minimum finger move |
APIs
The main core exposes only two methods
hermesInstance.bind(handler : Function); // Will call the function every event trigger
hermesInstance.unbind();Otherwhise a global event will be emitted (if emitGlobal option is set to true). Event types are
| name | enum | When |
|---|---|---|
hermes-wheel | Hermes.EVENTS.WHEEL | When a type of mouswheel event is detected |
hermes-touch | Herms.EVENTS.TOUCH | When a touchmouve event occurs after a touchstart, triggered also one last time on touchend with the inertia of the finger leaving the screen |
hermes-spacebar | Hermes.EVENTS.SPACEBAR | When spacebar is pressed in to scroll the page |
hermes-arrows | Hermes.EVENTS.ARROWS | When arrows are pressed to scroll the page |
hermes-keys | Hermes.EVENTS.KEY | When any key (spacebar or arrows) is pressed to scroll the page, this is a sum event of the preceding two |
| SCROLL |
5 months ago
2 years ago
3 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago