“ Keymaster是一个简单的微型库,用于在 Web 应用程序中定义和调度键盘快捷键。”
有没有很好的方法来做多键键盘组合。例如,在 Gmail 中,按g紧接着按i会将您带到您的收件箱。如果 keymasterjs 不支持它,那么是否有一种雄辩的方法可以做到这一点(我可能会分叉 keymaster 并添加此功能)。
Keymaster 没有依赖项。我很想保持这种状态......谢谢!
“ Keymaster是一个简单的微型库,用于在 Web 应用程序中定义和调度键盘快捷键。”
有没有很好的方法来做多键键盘组合。例如,在 Gmail 中,按g紧接着按i会将您带到您的收件箱。如果 keymasterjs 不支持它,那么是否有一种雄辩的方法可以做到这一点(我可能会分叉 keymaster 并添加此功能)。
Keymaster 没有依赖项。我很想保持这种状态......谢谢!
我不知道 keymaster,但您可以使用按键事件处理程序中的计时器 (setTimeout) 轻松完成此操作。不要立即对按键进行操作,而是将键添加到缓冲区中,然后等待第二个键,直到超时到期。
在代码中,这将是这样的:
var keyBuffer = [],
timer;
document.addEventListener('keypress', function(e) {
// Add current key to buffer
keyBuffer.push(e.which);
// Cancel previous timer
clearTimeout(timer);
// Set new timer
timer = setTimeout(function() {
// Pass a *copy* of the buffer into another function
reactOnKey(keyBuffer.slice(0));
// Clear buffer
keyBuffer.length = 0;
}, 1000)
}, false);
function reactOnKey(buffer) {
console.log(buffer);
}