ray-hotkeys
v1.0.4
Published
ray hotkeys, keycode
Downloads
25
Readme
ray-hotkeys
hot key
install
npm i --save ray-hotkeys
usage
import { keymap, utils, getEventKey } from 'ray-hotkeys';
utils.isDel(e);
utils.isSave(e);
const keycode = getEventKey(event);
keycode === keymap.ESC
keycode === keymap.DEL
keycode === keymap.ENTER
keycode === keymap.SHIFT
...
other api
KeyCode:
import KeyCode from 'ray-hotkeys/lib/KeyCode'
;disableZoom:
import disableZoom from 'ray-hotkeys/keytools/disableZoom'
;
shortcutKey
shortcutKey 执行时机:由 keyup and keydown
事件唤起。
import { shortcutKey } from 'ray-hotkeys';
// define short of 'a'
shortcutKey('a', function(){ alert('you pressed a!') });
// returning false stops the event and prevents default browser events
shortcutKey('ctrl+r', function(){ alert('stopped reload!'); return false });
// 绑定多个快捷键
shortcutKey('⌘+r, ctrl+r', function(event, handler){
console.log(handler.shortcut, handler.scope); // "ctrl+r", "all"
});
// 判断当前按下的键
if(shortcutKey.shift) {
alert('shift is pressed!');
}
shortcutKey('shift+m, ctrl+m', function () {
alert('绑定多个快捷键');
// 判断当前按下的键
if(shortcutKey.shift) {
alert('shift is pressed!');
}
});
// 键盘 keyCode
if(shortcutKey.isPressed("M")) {
alert('M key is pressed');
}
// 键盘 code 值
if(shortcutKey.isPressed(77)) {
alert('M key is pressed');
}
// 获取当前按下的所有键
shortcutKey.getPressedKeyCodes();
// 设置不同的 scope,用于页面不同区域定制快捷键
// define shortcuts with a scope
shortcutKey('o, enter', 'my', function(){ /* do something */ });
shortcutKey('o, enter', 'you', function(){ /* do something else */ });
// 设置 scope (只有 'all' and 'my' 下的 shortcuts 将会被触发)
shortcutKey.setScope('my'); // default scope is 'all'
// 重置 filter
// 返回 false,则不执行 shortcut
shortcutKey.filter = function(event){
const tagName = (event.target || event.srcElement).tagName;
shortcutKey.setScope(/^(INPUT|TEXTAREA|SELECT)$/.test(tagName) ? 'input' : 'other');
return true;
}
// 重置
const myKey = shortcutKey.reset();
myKey('a', function() { /* ... */ });
shortcutKey(); // --> TypeError: 'undefined' is not a function
// 解绑
// unbind 'a' handler
shortcutKey.unbind('a');
// unbind a key only for a single scope
// when no scope is specified it defaults to the current scope (shortcutKey.getScope())
shortcutKey.unbind('o, enter', 'my');
shortcutKey.unbind('o, enter', 'you');
Lecense
MIT