1.0.4 • Published 3 years ago

ray-hotkeys v1.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

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