阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

KeyboardJS 0.4.1 发布

  • 2013-01-18
  • 本文字数:978 字

    阅读完需:约 3 分钟

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

2013-01-18 04:351090
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 130.1 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

飞管飞控系统仿真应用探究与浅析

DevOps和数字孪生

飞管飞控

推荐几个好用的程序员效率神器

EquatorCoco

后端 开发工具 后端程序员

数据交付变革:研发到产运自助化的转型之路

百度Geek说

大数据 数据分析 BI 分析工具 企业号 1 月 PK 榜 数据仓模

面试官:单例Bean一定不安全吗?实际工作中如何处理此问题?

王磊

Java 面试

如何上传苹果ipa安装包?

聚道云软件连接器助力企业实现有赞商城与金蝶云星空系统无缝对接

聚道云软件连接器

案例分享

聚道云软件连接器助力某品牌管理有限公司实现有赞对接三联

聚道云软件连接器

案例分享

阿里云实时计算企业级状态存储引擎 Gemini 技术解读

Apache Flink

软件测试/测试开发/全日制/测试管理丨RESTX框架

测试人

软件测试

IIoT Advancement: Wally's QCN9024 Card Introduces New Mechanism for Real-time Monitoring on IPQ6018 and IPQ8072 Platforms

wallyslilly

ipq6018 QCN9074 IPQ8072

EVE-NG初次启动及WEB客户端访问

小魏写代码

软件测试/测试开发/全日制/测试管理丨后端接口文档管理Swagger

测试人

软件测试

荣登榜首,天翼云位列专属云容器服务市场第一!

天翼云开发者社区

云计算 容器服务

缓存之美——如何选择合适的本地缓存?

京东科技开发者

创建service后,kubernetes会发生什么

华为云开发者联盟

Kubernetes 云原生 后端 华为云 华为云开发者联盟

玩转TypeScript--openInula中的TypeScript实践(第一篇)

openInula

typescript 前端 Web 开发 前端框架

软件测试/测试开发/全日制/测试管理丨ORM中间件 SQLAlchemy

测试人

软件测试

年度回顾 | 2023年,云起无垠的开拓与创新

云起无垠

怎么看待存在争议的低代码?

高端章鱼哥

软件开发 低代码 JNPF

每日一题:LeetCode-24. 两两交换链表中的节点

半亩房顶

Go 面试 算法 链表 LeetCode

适用于 macOS 的参考资料管理软件:Bookends

Rose

Bookends Mac破解版

ARM版CentOS Linux系统镜像文件(苹果M1专用)

Rose

左耳听风 - 做正确的事,等着被“开除”「读书打卡 day 04」

Java 工程师蔡姬

读书笔记 程序员 读书 职业发展 左耳朵耗子

腾讯云 Elasticsearch 新篇章 - 存算分离+读写分离+查询/IO并行化, 助力日志/搜索领域降本增效

腾讯云大数据

ES

TikTok云手机:突破传统社媒营销方式的黑科技

Ogcloud

TikTok 云手机 海外云手机

揭秘关键指标稳定币供应比率(SSR):它如何影响你的投资?

Footprint Analytics

区块链 加密货币 稳定币

尊嘟假嘟?三行代码提升接口性能600倍

EquatorCoco

MySQL 接口

企业成功部署SD-WAN的七个关键要点

Ogcloud

网络 SD-WAN 企业网络

大白话70个你必须知道的AI重要概念(一)

FinClip

青否交互式数字人系统开放!

青否数字人

5分钟搞定vue3函数式弹窗

不在线第一只蜗牛

Java Vue 函数式

KeyboardJS 0.4.1发布_JavaScript_Callum Macrae_InfoQ精选文章