@kcuf/keymap
v0.1.3
Published
Yet another keystroke helper.
Downloads
13
Maintainers
Readme
@kcuf/keymap
基础比较
| Package | Version | Size | Download | Star | TS | Demo | Test | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | tinykeys | 3.0.0/2024 | 1.48kB | 41k/Week | 3.8k | ✅ | demo | - | | hotkeys-js | 3.13.7/2024 | 41.2kB | 363k/Week | 6.7k | ✍ | demo | Jest | | keymaster | 1.6.2/2014 | 8.58kB | 22k/Week | 6.5k | DT | | - | | mousetrap | 1.6.5/2019 | 33.9kB | 400k/Week | 11.7k | DT | | Mocha | | shortcutjs | 1.6.0/2017 | 12.9kB | 6/Week | 28 | ✅ | | Jest ★ | | hotkeys | 1.0.0/2014 | 15.1kB | 150/Week | 3 | JS | | |
其中 hotkeys OO 思想过重,用起来非常麻烦,后续不做计较。
功能比较
| - | tinykeys | hotkeys-js | keymaster | mousetrap | shortcutjs |
| ---- | ---- | ---- | ---- | ---- | ---- |
| 批量绑定 | ✅ 对象 | ✅ 逗号 | ✅ 逗号 | ✅ 数组 | ✅ 对象数组 |
| 支持序列(Combo) | ✅ | ❌ | ❌ | ✅ | ❌ |
| 安全解绑 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 暂停(pause/resume) | ❌ | ❌ | ❌ | ❌ | ✅ |
| preventDefault | ❌ | return false
| return false
| return false
| options
|
| stopPropagation | ❌ | return false
| return false
| return false
| ❌ |
| 触发条件 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 便捷绑定(? *
等) | ❌ | ❌ | ❌ | ✅ | ❌ |
| 代码触发(trigger) | ❌ | ✅ | ❌ | ✅ | ❌ |
| 符号 Modifiers(⇧⌥⌃⌘) | ❌ | ✅ | ✅ | ❌ | ❌ |
符号
| 符号 | key
| code
| ~~keyCode
~~ |
| --- | --- | --- | --- |
| ⌃ | Control | ControlLeft / ControlRight | 17 |
| ⌥ | Alt | AltLeft / AltRight | 18 |
| ⇧ | Shift | ShiftLeft / ShiftRight | 16 |
| ⌘ | Meta | MetaLeft / MetaRight | 224 |
| ↑ | ArrowUp | ArrowUp | 38 |
| ↓ | ArrowDown | ArrowDown | 40 |
| ← | ArrowLeft | ArrowLeft | 37 |
| → | ArrowRight | ArrowRight | 39 |
| ⏎ / ↵ / ↩ | Enter | Enter | 13 |
| ␣ | Space | Space | 32 |
| ⎋ | Escape | Escape | 27 |
| ⇥ | Tab | Tab | 9 |
| ⇞ | PageUp | PageUp | ? |
| ⇟ | PageDown | PageDown | ? |
| ⌫ | Backspace | Backspace | 8 |
| ⌦ | Delete | Delete | 46 |
FAQ
❓ 能否 stopPropagation
和 preventDefault
?
可以。由绑定方法的返回值决定:
'stop'
→e.stopPropagation()
'prevent'
→e.preventDefault()
false
→e.stopPropagation()
+e.preventDefault()
- 其他 → 什么都不做
❓能否在回调中拿到事件对象?
不能,不需要,也不安全。
❓ Mac 下 F11 无响应?
系统快捷键权限更高,接管不了。
❓ Ctrl++
不行?
不行。换 Ctrl+=
。
❓ Combo 下使用 +
?
可以。比如设置 C + +
,可以在按键序列 c
→ ⇧=
→ ⇧=
时触发。