KeyboardJS 是一款为简化 JavaScript 中的键盘处理而编写的库,上个月发布了 0.4.1 版本,该版本修复了很多 bug,还包含了一些新特性。 KeyboardJS 库致力于帮助前端开发人员处理键盘动作,比如支持网站或游戏中的快捷键。如果不使用库,要检查 J 和 K 是否同时按下,可能需要使用类似如下的代码:
var jPressed = false, kPressed = false; document.addEventListener('keydown', function (e) { if (e.keyCode === 74) { jPressed = true; } else if (e.keyCode === 75) { kPressed = true; } if (jPressed && kPressed) { // 两个键都被按下;向控制台中打印日志 console.log('Both J and K are pressed'); } }); document.addEventListener('keyup', function (e) { if (e.keyCode === 74) { jPressed = false; } else if (e.keyCode === 75) { kPressed = false; } });
而使用 KeyboardJS 时,只需如下可读性更好的代码:
KeyboardJS.on('j + k', function () { console.log('Both J and K are pressed'); });
该库还允许开发者指定按键按下的顺序(使用 > 运算符),而且除了上面演示的“与(and)”操作,“或(or)”操作可以使用空格或逗号。
KeyboardJS 没有发布 0.4.0 版本,上个月发布的 0.4.1 版是完全重写的。除了修复很多 bug 之外,还有一些 API 方面的变更。这里举两个例子,一个是添加了 KeyboardJS.getActiveKeys() 函数,能够按名字返回当前按下按键的数组(GitHub 上的 KeyboardJS 网站就是利用该函数输出按键名的),另一个是很多用于处理组合按键的组合函数移到了 KeyboardJS.combo 对象中。
要把 KeyboardJS 添加到自己的应用中,可以从 GitHub (鼠标滑动到“Get it Here”部分)下载代码,并在使用 KeyboardJS 之前将如下 HTML 代码添加到你的页面中:
<script src="keyboard.js"></script>
如果仍在使用 XHTML,需要将 type="text/javascript"添加到 script 标签中。
也可以通过 RequireJS 将其当做 AMD 模块下载。
区域设置指的是不同的键盘布局,比如在美式键盘布局中,shift + 6 是(^)符号,而在德式键盘布局中则是(&)。每种要支持的区域设置都必须告知该库。KeyboardJS 目前只支持美式键盘布局,但是添加自己的区域设置非常容易——请确保在添加自己的区域设置时向该库发送 pull 请求。
参考英文原文: KeyboardJS 0.4.1 released
评论