Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timoxley/keycode
Convert between keyboard keycodes and keynames and vice versa.
https://github.com/timoxley/keycode
Last synced: 6 days ago
JSON representation
Convert between keyboard keycodes and keynames and vice versa.
- Host: GitHub
- URL: https://github.com/timoxley/keycode
- Owner: timoxley
- License: mit
- Created: 2012-10-14T00:37:39.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2023-02-14T23:42:03.000Z (over 1 year ago)
- Last Synced: 2024-10-17T20:48:33.316Z (27 days ago)
- Language: JavaScript
- Size: 75.2 KB
- Stars: 456
- Watchers: 11
- Forks: 62
- Open Issues: 19
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# keycode
Simple map of keyboard codes.
[![Build Status](https://travis-ci.org/timoxley/keycode.png?branch=master)](https://travis-ci.org/timoxley/keycode)
## Installation
#### npm
```sh
$ npm install keycode
```#### component
```sh
$ component install timoxley/keycode
```## Example
```js
var keycode = require('keycode');
document.addEventListener('keydown', function(e) {
console.log("You pressed", keycode(e))
})
```## API
`keycode` tries to make an intelligent guess as to what
you're trying to discover based on the type of argument
you supply.### keycode(keycode:Event)
Returns the name of the key associated with this event.
```js
document.body.addEventListener('keyup', function(e) {
console.log(keycode(e)) // prints name of key
})
```[Due to the keypress event being weird](https://github.com/timoxley/keycode/wiki/wtf%3F-keydown,-keyup-vs-keypress),`keycode `currently does not support the `keypress` event, but this should not be an issue as `keydown` and `keyup` work perfectly fine.
### keycode(keycode:Number)
Returns the lowercase name of a given numeric keycode.
```js
keycode(13) // => 'enter'
```### keycode(name:String)
Returns the numeric keycode for given key name.
```js
keycode('Enter') // => 13// keycode is not case sensitive
keycode('eNtEr') // => 13
```### Name Aliases
Common aliases are also supplied:
```js
> for (var alias in keycode.aliases) { console.log(alias, keycode(keycode(alias))) }
ctl ctrl
pause pause/break
break pause/break
caps caps lock
escape esc
pgup page up
pgdn page down
ins insert
del delete
spc space
```## keycode.isEventKey(event: Event, nameOrCode: String | Number)
Tests if an keyboard event against a given name or keycode.
Will return `true` if the event matches the given name or keycode, `false` otherwise.```js
// assume event is an keydown event with key 'enter'
keycode.isEventKey(event, 'enter') // => true
keycode.isEventKey(event, 'down') // => falsekeycode.isEventKey(event, 13) // => true
keycode.isEventKey(event, 40) // => false
```## Maps
Key code/name maps are available directly as `keycode.codes` and `keycode.names` respectively.
```js
keycode.names[13] // => 'enter'
keycode.codes['enter'] // => 13
```## Credit
```
project : keycode
repo age : 3 years, 8 months
active : 29 days
commits : 66
files : 13
authors :
49 Tim Oxley 74.3%
4 jkroso 6.1%
3 Amir Abu Shareb 4.5%
1 Greg Reimer 1.5%
1 Kenan Yildirim 1.5%
1 Abel Toledano 1.5%
1 Sam 1.5%
1 TJ Holowaychuk 1.5%
1 Yoshua Wuyts 1.5%
1 Nathan Zadoks 1.5%
1 Brenton Simpson 1.5%
1 Brian Noguchi 1.5%
1 Gilad Peleg 1.5%
```Original key mappings lifted from http://jsfiddle.net/vWx8V/ via http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes
## License
[MIT](http://opensource.org/licenses/mit-license.php)