dom-mousemove-dispatcher

1.0.1 • Public • Published

Install

npm install --save dom-mousemove-dispatcher

Use rollup, browserify, or some other compiler to use this library.

Example

import mouseMoveDispatcher from 'dom-mousemove-dispatcher';
 
const dispatcher = mouseMoveDispatcher(window);
 
let div = document.querySelector('div')
 
div.addEventListener('mousemove', (e)=>{
    //This event might have been dispatched by the dispatcher.
    console.log(
        'mouse moving dispatched = ',e.dispatched,
        ' event =', e,
        ' data =', e.data
    );
});
 
div.addEventListener('mousemove', (e)=>{
    if(e.data === 'myEvent'){
        //The event was dispatched from this listener.
        //To prevent infinite recursion don't refire until the next turn in the event loop.
        e.stopPropagation();
        return;
    }
    //Re-dispatch this event.
    dispatcher.dispatch(div, e, 'myEvent');
});
 
//Dispatch an event with a clientX property.
setTimeout(()=>dispatcher.dispatch(div, {clientX: 500}), 1000);
 

The Event Object

The event object you get from firing a mousemove with dom-mousemove-dispatcher has additional properties set on it. These are:

  • event.dispatched = "mousemove"
  • event.data = Your data

mouseMoveDispatcher(object) -> dispatcher

Create a mousemove dispatcher that uses object to set the default properties on move.

object can be anything that can have mousemove set through it's addEventListener method (window, body, p, div, ...).

dispatcher.dispatch(element, eventProps, data|undefined) -> cancelled

Dispatch a mousemove event.

element is the DOM element you wish to fire the mousemove on.

eventProps are the properties you want to add to the event.

The optional data parameter is an arbitrary javascript value that will be set on a data property on the mousemove event object.

dispatcher.destroy() -> undefined

Cleanup the dispatcher object events, and properties.

About

dom-mousemove-dispatcher is a ponyfill for mousemove event dispatch that is optimized for quick firing of mousemove.

Please report any bugs you find.

Readme

Keywords

Package Sidebar

Install

npm i dom-mousemove-dispatcher

Weekly Downloads

45,498

Version

1.0.1

License

MIT

Last publish

Collaborators

  • hollowdoor