Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikolalysenko/mouse-event

Cross browser mouse event property access
https://github.com/mikolalysenko/mouse-event

Last synced: about 2 months ago
JSON representation

Cross browser mouse event property access

Awesome Lists containing this project

README

        

# mouse-event
Provides a normalized, cross-browser, garbage-collection-free API for reading out the state of a mouse event.

### Why is this needed?
Because it is 2015 and somehow every major browser still disagrees on even the most basic details of MouseEvents. Seriously guys.

# Example

```javascript
var mouse = require('mouse-event')

window.addEventListener('mousemove', function(ev) {
document.body.innerHTML =
'

Buttons: ' + mouse.buttons(ev) +
' x:' + mouse.x(ev) +
' y:' + mouse.y(ev) + '

'
})
```

[Try this in your browser](https://mikolalysenko.github.io/mouse-event)

# Install

```
npm i mouse-event
```

# API

```javascript
var mouse = require('mouse-event')
```

#### `mouse.buttons(event)`
Returns a bit vector, similar to `event.which` in WebKit encoding the state of the mouse buttons.

* `event` is a mouse event

**Returns** A bit vector with the following interpretation for the flags:
* `1` - left mouse
* `2` - right mouse
* `4` - middle mouse
* `8` - button 4
* `16` - button 5
* ...
* `1<