Kibo 用于处理键盘事件的Javascript工具库
发布时间:2024-04-10 10:45:53
入门
Kibo不依赖任何东西。你只要把它放到你的HTML代码里就行了:
<script type="text/javascript" src="kibo.js"></script>
下载 kibo.js
创建一个Kibo对象实例,事件 * 就建立起来了:
var k = new Kibo();
Kibo对象的构造器有一个可选参数——你指定的接收事件的HTML元素。可以是input, textarea 或 select,缺省情况下是window.document。
语法和用法
本工具库提供了两个简单的方法——down and up, 它们都接收两个参数:一个按键或多个按键的组合或通配符,以及一个当有匹配的按键事件发生时调用的函数。这两个方法都可以链式调用。
按键组合是指控制键和字符键的组合,或者简单的是一个或多个控制键。你可以向这两个方法传入单个或一个数组形式的多个组合键。
当函数被调用时,事件将被传入这个函数。如果你的事件没有什么操作,忽略就行了。如果函数返回了false,事件的缺省操作将被阻止。
Kibo里提供了一个lastKey方法,用来查询最后一次键盘事件是由什么键产生的。它会返回键的名称,如果在最后的一次按键是不支持的键,方法将返回undefined。除此之外,你还可以用lastKey判断是否是某个特定的功能键被按下,它会要么返回true 要么返回 false。
受支持的按键
Kibo 支持下面的这些按键,拼写这些按键名时不区分大小写:
控制键 shift, ctrl, alt
字母键 从a 到 z
数字键 从0 到 9
功能键 从f1 到 f12
方向键 left, up, right, down
enter, esc, space, backspace, delete, insert, tab, page_up, page_down, home, end, caps_lock, num_lock
通配符 any, any arrow, any number, any letter, any f
例子
var k = new Kibo();
单键或多键组合
k.down(['up', 'down'], function() {
console.log('up or down arrow key pressed');
}).up('tab', function() {
console.log('TAB key released');
});
含有控制键的组合键
function handler() {
console.log('last key: ' + k.lastKey());
}
k.down(['shift q', 'ctrl alt x'], handler);
通配符
k.down(['any letter', 'any number'], function() {
console.log('letter or number key pressed');
console.log('shift key was' + (k.lastKey('shift') ? '' : ' not') + ' pressed');
});
k.up('any', function() {
console.log('key released');
});
阻止缺省事件
k.down('f5', function() { return false; });
License
Kibo is released under the MIT License.


猜你喜欢
- 项目技术:webpack + vue + element + axois (vue-resource) + less-loader+ ...
- 首先我们创建数据库表:CREATE TABLE `t_demo` ( `id` int(32) NOT NULL, `name` varch
- 在进行特征工程、划分数据集的工作中,drop()函数都能派上用场。它可以轻松剔除数据、操作列和操作行等。drop()详细的语法如下:删除行是
- MongoDB安装模块pip install pymongo连接数据库import pymongoclient = pymongo.Mong
- TIMESTAMP类型返回日期时间数据中带有 T场景描述MySQL 中使用 TIMESTAMP 类型实体类使用 java.util.Date
- 近期被问到一个问题,在你们项目中使用的是Vue的SPA(单页面)还是Vue的多页面设计?这篇文章主要围绕Vue的SPA单页面设计展开。 关于
- numpy.insert()主要用于向矩阵中插入行或列。对于多维矩阵,可以沿任意一个轴插入元素。1. 参数说明numpy.insert(ar
- 设置项目气动执行次方法(每天检查一次表记录)public class DayInterval implements ServletConte
- sqlalchemy的常用数据类型数据类型python数据类型说明Integerint整形Stringstr字符串Floatfloat浮点型
- 阅读上一篇:javascript面向对象编程(一)[javascript模拟传统OOP]javascript是一种非常灵活的语言,它的灵活度
- 导语哈喽!大家好~我是木木子啦!自从写了一些表白类型的一些小脚本、小程序之后,越发不可收拾了,哈哈哈。常常会有小粉丝说:这......小程序
- 最近在做一个站点时,需要生成静态页面,但是生成的静态页面中有些内容是需要动态获取的,怎不能每天生成一下吧。。 最后上网查了一下,再加上个要总
- 本文实例讲述了Python实现判断并移除列表指定位置元素的方法。分享给大家供大家参考,具体如下:问题很简单,输入一个列表和索引,若索引超出列
- 阅读上一篇:一个完美网站的101项指标.第六部分.性能 符合 W3C 标准是网站的发展趋势,目前,几乎所有的浏览器都使用 W3C 标准,W3
- 1 简介大家好,我们在日常使用 Python 的过程中,经常会使用 json 格式存储一些数据,尤其
- 当业务A页面有验证码,且业务B页面也需要验证码。这个时候,如果A和B共用一个验证码,则会出现这种情况:A页面出现验证码,这个时候打开B页面验
- 有时,我们需要获得某张表所有的元数据,我们可能想到的是通过查询系统表获得,但是这比较繁琐,而在SQL Server2005(包含)以后,提供
- 前言Go语言是Google内部主推的语言,它作为一门全新的静态类型开发语言,与当前的开发语言相比具有许多令人兴奋不已的新特性。专门针对多处理
- golang修改结构体中的切片值,直接传结构体地址就可以package mainimport "fmt"type rsp
- 一、前言大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前。其他语言,想C++