BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

KeyboardJS 0.4.1发布

| 作者 Callum Macrae 关注 0 他的粉丝 ,译者 臧秀涛 关注 4 他的粉丝 发布于 2013年1月19日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT