Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/waichungwong/jw-mouse
A static and stateful instance which hooks into all mouse and touch events.
https://github.com/waichungwong/jw-mouse
mouse mouse-events mouse-listeners npm-module
Last synced: about 1 month ago
JSON representation
A static and stateful instance which hooks into all mouse and touch events.
- Host: GitHub
- URL: https://github.com/waichungwong/jw-mouse
- Owner: WaiChungWong
- License: mit
- Created: 2018-05-01T10:55:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-02-15T03:51:55.000Z (almost 6 years ago)
- Last Synced: 2024-11-10T05:29:10.448Z (about 2 months ago)
- Topics: mouse, mouse-events, mouse-listeners, npm-module
- Language: JavaScript
- Homepage:
- Size: 881 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jw-mouse
A static and stateful instance which hooks into all mouse and touch events.
It also captures position, direction and speed of movement.
(Currently it supports single touch only)[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![node version][node-image]][node-url]
[![npm download][download-image]][download-url][npm-image]: http://img.shields.io/npm/v/jw-mouse.svg
[npm-url]: http://npmjs.org/package/jw-mouse
[travis-image]: https://img.shields.io/travis/WaiChungWong/jw-mouse.svg
[travis-url]: https://travis-ci.org/WaiChungWong/jw-mouse
[node-image]: https://img.shields.io/badge/node.js-%3E=_0.10-green.svg
[node-url]: http://nodejs.org/download/
[download-image]: https://img.shields.io/npm/dm/jw-mouse.svg
[download-url]: https://npmjs.org/package/jw-mouse[Demo](http://waichungwong.github.io/jw-mouse/build)
## Install
[![NPM](https://nodei.co/npm/jw-mouse.png)](https://nodei.co/npm/jw-mouse)
## Methods
| Method | Parameters | Description |
| ------------------- | ------------------------- | ------------------------------------------------------------------------------- |
| `attach` | `element`: DOM element | append the mouse to the a DOM element and event functions to it. |
| `detach` | | disengage the mouse from DOM element and event functions from it. |
| `setPreventDefault` | `preventDefault`: boolean | toggle value for mouse prevent default on all events. |
| `onEnter` | `handler`: function | bind an event handler to the mouse enter event. Returns a method to unbind. |
| `clearEnter` | | unbind all event handlers from the mouse enter event. |
| `onLeave` | `handler`: function | bind an event handler to the mouse leave event. Returns a method to unbind. |
| `clearLeave` | | unbind all event handlers from the mouse leave event. |
| `onDown` | `handler`: function | bind an event handler to the mouse down event. Returns a method to unbind. |
| `clearDown` | | unbind all event handlers from the mouse down event. |
| `onUp` | `handler`: function | bind an event handler to the mouse up event. Returns a method to unbind. |
| `clearUp` | | unbind all event handlers from the mouse up event. |
| `onMove` | `handler`: function | bind an event handler to the mouse move event. Returns a method to unbind. |
| `clearMove` | | unbind all event handlers from the mouse move event. |
| `onScroll` | `handler`: function | bind an event handler to the mouse scroll event. Returns a method to unbind. |
| `clearScroll` | | unbind all event handlers from the mouse scroll event. |
| `onDrag` | `handler`: function | bind an event handler to the mouse drag event. Returns a method to unbind. |
| `clearDrag` | | unbind all event handlers from the mouse drag event. |
| `onDragOver` | `handler`: function | bind an event handler to the mouse drag over event. Returns a method to unbind. |
| `clearDragOver` | | unbind all event handlers from the mouse drag over event. |
| `onDrop` | `handler`: function | bind an event handler to the mouse drop event. Returns a method to unbind. |
| `clearDrop` | | unbind all event handlers from the mouse drop event. |
| `onStop` | `handler`: function | bind an event handler to the mouse stop event. Returns a method to unbind. |
| `clearStop` | | unbind all event handlers from the mouse stop event. |
| `onClick` | `handler`: function | bind an event handler to the mouse click event. Returns a method to unbind. |
| `clearClick` | | unbind all event handlers from the mouse click event. |## Handler Event
On handling the event, the same event object as the one from `addEventListener` will be passed as a parameter, with an additional `mouse` object, which holds the following properties:
| Prop | Description |
| ---------------------- | ----------------------------------------------------------------------- |
| `isMouseDown` | whether any mouse key is pressed down. |
| `scrollDelta` | the delta value when the mouse scrolls. |
| `isTouching` | whether the mouse is currently contacted by touch surface. |
| `previousPosition` | previous mouse position. |
| `previousDownPosition` | previous mouse position when a mouse button was pressed. |
| `position` | current mouse position. |
| `direction` | current mouse direction. |
| `movedDistance` | the distance moved from previous position. |
| `movingSpeed` | current mouse moving speed. |
| `preventDefault` | whether the mouse skips the default behaviours upon the listen element. |## Usage
```javascript
import Mouse from "jw-mouse";/* Get the element for the mouse. */
var element = document.getElementById("container");/* Create a mouse instance, with the element as its container.
* This is to allow the mouse to monitor all mouse events from the container. */
var mouse = new Mouse(element);/** Append the mouse to the a DOM element and event functions to it. */
mouse.attach(element);/** Disengage the mouse from DOM element and event functions from it. */
mouse.detach();/** Toggle value for mouse prevent default on all events. */
mouse.setPreventDefault(preventDefault);/** Bind an event handler to the mouse enter event. */
let removeEnter = mouse.onEnter(event => { ... });/** Unbind an event handler to the mouse enter event. */
removeEnter();/** Unbind all event handlers from the mouse enter event. */
mouse.clearEnter();/** Bind an event handler to the mouse leave event. */
let removeLeave = mouse.onLeave(event => { ... });/** Unbind an event handler to the mouse leave event. */
removeLeave();/** Unbind all event handlers from the mouse leave event. */
mouse.clearLeave();/** Bind an event handler to the mouse down event. */
let removeDown = mouse.onDown(event => { ... });/** Unbind an event handler to the mouse down event. */
removeDown();/** Unbind all event handlers from the mouse down event. */
mouse.clearDown();/** Bind an event handler to the mouse up event. */
let removeUp = mouse.onUp(event => { ... });/** Unbind an event handler to the mouse up event. */
removeUp();/** Unbind all event handlers from the mouse up event. */
mouse.clearUp();/** Bind an event handler to the mouse move event. */
let removeMove = mouse.onMove(event => { ... });/** Unbind an event handler to the mouse move event. */
removeMove();/** Unbind all event handlers from the mouse move event. */
mouse.clearMove();/** Bind an event handler to the scroll event. */
let removeScroll = mouse.onScroll(event => { ... });/** Unbind an event handler to the scroll event. */
removeScroll();/** Unbind all event handlers from the mouse scroll event. */
mouse.clearScroll();/** Bind an event handler to the drag event. */
let removeDrag = mouse.onDrag(event => { ... });/** Unbind an event handler to the drag event. */
removeDrag();/** Unbind all event handlers from the mouse drag event. */
mouse.clearDrag();/** Bind an event handler to the drag over event. */
let removeDragOver = mouse.onDragOver(event => { ... });/** Unbind an event handler to the drag over event. */
removeDragOver();/** Unbind all event handlers from the drag over event. */
mouse.clearDragOver();/** Bind an event handler to the drop event. */
let removeDrop = mouse.onDrop(event => { ... });/** Unbind an event handler to the drop event. */
removeDrop();/** Unbind all event handlers from the drop event. */
mouse.clearDrop();/** Bind all event handlers from the stop event. */
let removeStop = mouse.onStop(event => { ... });/** Unbind an event handler to the stop event. */
removeStop();/** Unbind all event handlers from the stop event. */
mouse.clearStop();/** Bind all event handlers from the click event. */
let removeClick = mouse.onClick(event => { ... });/** Unbind an event handler to the click event. */
removeClick();/** Unbind all event handlers from the click event. */
mouse.clearClick();
```