(94)Wangdao.com_第二十七天_键盘事件
键盘事件
键盘事件由用户击打键盘触发
- 主要有 keydown、keyup 、keypress三个事件,它们都继承了 KeyboardEvent 接口。
- keydown 按下键时 触发
- keyup 松开键时 触发
- keypress 按下有值的键时 触发
即按下 Ctrl、Alt、Shift、Meta 这样无值的键,这个事件不会触发。
对于有值的键,按下时先触发 keydown 事件,再触发这个事件。
- 如果用户按下 不放时,就会连续触发键盘事件
keydown
keypress
keydown
keypress
...(重复以上过程)
终于松开了 keyup- KeyboardEvent 接口
描述用户与键盘的互动。
这个接口继承了 Event 接口,并且定义了自己的实例属性和实例方法
- 浏览器原生提供 KeyboardEvent 构造函数
用来新建键盘事件的实例
var keyEvent = new KeyboardEvent(type, options)
第一个参数是字符串,表示事件类型;
第二个参数是一个事件配置对象,该参数可选。
除了 Event 接口提供的属性,还可以配置以下字段,它们都是可选的
key 字符串 当前按下的键,默认为空字符串。
code 字符串 表示当前按下的键的字符串形式,默认为空字符串。
location 整数 当前按下的键的位置,默认为0。
ctrlKey 布尔值 是否按下 Ctrl 键,默认为false。
shiftKey 布尔值 是否按下 Shift 键,默认为false。
altKey 布尔值 是否按下 Alt 键,默认为false。
metaKey 布尔值 是否按下 Meta 键,默认为false。
repeat 布尔值 是否重复按键,默认为false- KeyboardEvent 的实例属性
event.altKey 是否按下 Alt 键
event.ctrlKey 是否按下 Ctrl 键
event.metaKey 是否按下 meta 键(Mac 系统是一个四瓣的小花,Windows 系统是 windows 键)
event.shiftKey 是否按下 Shift 键
function showChar(e) {
console.log('ALT: ' + e.altKey);
console.log('CTRL: ' + e.ctrlKey);
console.log('Meta: ' + e.metaKey);
console.log('Meta: ' + e.shiftKey);
}; document.body.addEventListener('keydown', showChar, false);
event.code 返回一个字符串
表示当前按下的键的字符串形式。
该属性只读。
下面是一些常用键的字符串形式,其他键请查文档
数字键0 - 9 返回 digital0 - digital9
字母键A - z 返回 KeyA - KeyZ
功能键F1 - F12 返回 F1 - F12
方向键 返回 ArrowDown、ArrowUp、ArrowLeft、ArrowRight
Alt 键 返回 AltLeft 或 AltRight
Shift 键 返回 ShiftLeft 或 ShiftRight
Ctrl 键 返回 ControLeft 或 ControlRight
event.key 返回一个字符串
表示按下的键名。
该属性只读。
如果按下的键代表可打印字符,则返回这个字符,比如数字、字母
如果按下的键代表不可打印的特殊字符,则返回预定义的键值,
比如 Backspace,Tab,Enter,Shift,Control,Alt,CapsLock,
Esc,Spacebar,PageUp,PageDown,End,Home,Left,
Right,Up,Down,PrintScreen,Insert,Del,Win,F1~F12,
NumLock,Scroll 等
如果同时按下一个 控制键 和一个 符号键 ,则返回符号键的键名。比如,按下 Ctrl + a,则返回a;按下 Shift + a,则返回大写的 A
如果无法识别键名,返回字符串 "Unidentified"
event.location 返回一个整数,
表示按下的键处在键盘的哪一个区域。
0 键盘的主区域,或者无法判断处于哪一个区域。
1 键盘的左侧,只适用那些有两个位置的键(比如 Ctrl 和 Shift 键)。
2 键盘的右侧,只适用那些有两个位置的键(比如 Ctrl 和 Shift 键)。
3 数字小键盘。
event.repeat 返回一个布尔值
代表该键是否被按着不放,以便判断是否重复这个键
即浏览器会持续触发 keydown 和 keypress 事件,直到用户松开手为止
- event.getModifierState() 返回一个布尔值
表示是否按下或激活指定的功能键
- Alt Alt 键
CapsLock 大写锁定键
Control Ctrl 键
Meta Meta 键
NumLock 数字键盘开关键
Shift Shift 键 if ( event.getModifierState('Control') +
event.getModifierState('Alt') +
event.getModifierState('Meta') > 1){ //只要Control、Alt、Meta里面,同时按下任意两个或两个以上的键就返回
return;
}
(94)Wangdao.com_第二十七天_键盘事件的更多相关文章
- (93)Wangdao.com_第二十六天_鼠标事件
鼠标事件 与鼠标相关的事件,继承了 MouseEvent 接口 分类: click 按下鼠标(通常是按下主按钮)时触发. mousedown 首先触发,mouseup 接着 ...
- (96)Wangdao.com_第二十九天_表单事件
表单事件 input 事件 select 事件 change 事件 invalid 事件 reset 事件 submit 事件 ...
- JavaScript的事件对象_键盘事件
用户在使用键盘时会触发键盘事件.“DOM2 级事件”最初规定了键盘事件,结果又删除了相应的内容.最终还是使用最初的键盘事件,不过 IE9 已经率先支持“DOM3”级键盘事件. 一.键码 在发生 key ...
- (95)Wangdao.com_第二十八天_进度事件
进度事件 进度事件 用来描述资源加载的进度, 主要由 AJAX 请求.<img>.<audio>.<video>.<style>.<link> ...
- (92)Wangdao.com_第二十五天_线程机制_H5 Web Workers 分线程任务_事件 Event
浏览器内核 支撑浏览器运行的最核心的程序 IE 浏览器内核 Trident内核,也是俗称的IE内核Chrome 浏览器内核 统称为 Chromium 内核或 ...
- 第二十七课:滚轮事件,mouseenter与mouseleave事件的修复
滚轮事件 jQuery核心库没有对mousewheel事件的差异性进行处理,但作为一个常用的事件,本文讲解一下. mousewheel事件只有火狐浏览器不支持.mousewheel用于取得滚动距离的属 ...
- javaSE第二十七天
第二十七天 447 1:反射(理解) 447 (1)类的加载及类加载器 447 (2)反射: 448 A:定义 448 B:获取字节码对象的三种方式 449 (3) ...
- 深入理解DOM事件类型系列第二篇——键盘事件
× 目录 [1]类型 [2]顺序 [3]按键信息[4]应用 前面的话 鼠标和键盘是电脑端主要的输入设备,上篇介绍了鼠标事件,本文将详细介绍键盘事件 类型 键盘事件用来描述键盘行为,主要有keydown ...
- NeHe OpenGL教程 第二十七课:影子
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- Fiddler--Composer
Composer选项卡支持手动构建和发请求:也可以在Session列表中拖拽Session放到Composer中,把该Session的请求复制到用户界面: 点击"execute"按 ...
- 利用git提交代码
一.首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可 ...
- 数据结构Java实现03----栈:顺序栈和链式堆栈
一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...
- 使用Jenkins docker镜像运行Jenkins服务
需求 使用docker技术管理Jenkins服务器.避免多次部署需要重复安装的重复工作,且可以方便迁移到新的服务器. Jenkins docker镜像 https://hub.docker.com/_ ...
- MySQL5.6.39修改密码
5.6.39 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) step2: 进入终端输入:cd /usr/local ...
- luogu P5293 [HNOI2019]白兔之舞
传送门 关于这题答案,因为在所有行,往后跳到任意一行的\(w_{i,j}\)都是一样的,所以可以算出跳\(x\)步的答案然后乘上\(\binom{l}{x}\),也就是枚举跳到了哪些行 如果记跳x步的 ...
- 移动端控制视频点击播放点击下一个视频时自动停止播放&监听滑动溢出屏幕高度时停止播放
直接上代码js部分: <script type="text/javascript"> var go;//记录video播放器位置 var video=document. ...
- Spring Cloud 2-Feign 声明式服务调用(三)
Spring Cloud Feign 1. pom.xml 2. application.yml 3. Application.java 4. Client.java 简化RestTemplate调 ...
- 【转】QPainter中坐标系变换问题
转自:http://blog.sina.com.cn/s/blog_67cf08270100ww0p.html 一.坐标系简介. Qt中每一个窗口都有一个坐标系,默认的,窗口左上角为坐标原点,然后水平 ...
- 解决只读时ios下input光标问题
应用场景:在ios手机下对只读的input设置readonly=readonly属性还是会出现光标 解决方法: //解决ios日期光标问题 $("#Stime ,#provinceCity& ...