105_键盘事件对象

1. 当发生keydown、keypress和 keyup事件时, 它们的执行函数都会传递KeyboardEvent(键盘事件对象)参数。

2. KeyboardEvent.ctrlKey事件属性

2.1. KeyboardEvent.ctrlKey指示当事件发生时, Ctrl键是否被按下并保持住。可返回一个布尔值, 按下状态(true), 释放状态(false)。它是一个只读属性。

3. KeyboardEvent.altKey事件属性

3.1. KeyboardEvent.altKey指示在指定的事件发生时, Alt键是否被按下并保持住了。可返回一个布尔值, 按下状态(true), 释放状态(false)。它是一个只读属性。

4. KeyboardEvent.shiftKey事件属性

4.1. KeyboardEvent.shiftKey指示当事件发生时, "Shift"键是否被按下并保持住。可返回一个布尔值, 按下状态(true), 释放状态(false)。它是一个只读属性。

5. KeyboardEvent.metaKey事件属性

5.1. KeyboardEvent.metaKey指示当事件发生时, "meta"键是否被按下并保持住。可返回一个布尔值, 按下状态(true), 释放状态(false)。它是一个只读属性。

6. KeyboardEvent.repeat事件属性

6.1. KeyboardEvent.repeat是一个只读属性, 返回一个布尔值Boolean, 如果按键被一直按住, 返回值为true。

7. KeyboardEvent.code事件属性

7.1. KeyboardEvent.code是一个只读属性, 表示键盘上的物理键, 此属性返回一个String类型的值(键盘上的每一个键都有唯一的code值), 该值不会被键盘布局或修饰键的状态改变。

8. KeyboardEvent.key事件属性

8.1. KeyboardEvent.key是一个只读属性, 返回用户按下的物理按键的值。它还与shiftKey等调节性按键的状态和键盘布局有关。 

9. 例子

9.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>键盘事件对象(KeyboardEvent)</title>
	</head>
	<body>
		<p>请按下键盘上的任意键: <br /></p>

		<script type="text/javascript">
			var myP = document.querySelector("p");

			// 这里添加事件去掉on前缀
			document.body.addEventListener("keydown", mykeydown, false);
			document.body.addEventListener("keypress", mykeypress, false);
			document.body.addEventListener("keyup", mykeyup, false);

			function mykeydown(e){ // e是KeyboardEvent对象
				myP.innerHTML += ("onkeydown [ctrlKey: " + e.ctrlKey + ", altKey: " + e.altKey + ", shiftKey: " + e.shiftKey + ", metaKey: " + e.metaKey 
					+ ", repeat: " + e.repeat + ", code: " + e.code + ", key: " + e.key + "<br />");
			}

			function mykeypress(e){ // e是KeyboardEvent对象
				myP.innerHTML += ("onkeypress [ctrlKey: " + e.ctrlKey + ", altKey: " + e.altKey + ", shiftKey: " + e.shiftKey + ", metaKey: " + e.metaKey 
					+ ", repeat: " + e.repeat + ", code: " + e.code + ", key: " + e.key + "<br />");
			}

			function mykeyup(e){ // e是KeyboardEvent对象
				myP.innerHTML += ("onkeyup [ctrlKey: " + e.ctrlKey + ", altKey: " + e.altKey + ", shiftKey: " + e.shiftKey + ", metaKey: " + e.metaKey 
					+ ", repeat: " + e.repeat + ", code: " + e.code + ", key: " + e.key + "<br />");
			}
		</script>
	</body>
</html>

9.2. 效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值