<textarea id="key"></textarea> <script> var key = document.getElementById("key"); key.onkeydown =f; //注册keydown事件处理函数 key.onkeyup = f; //注册keyup事件处理函数 key.onkeypress = f; //注册keypress事件处理函数 function f (e) { var e = e || window.event; //标准化事件处理 var s = e.type + " " + e.keyCode; //获取键盘事件类型和按下的值 key.value = s; } </script>
属性 | 说明 |
---|---|
keyCode | 该属性包含键盘中对应键位的键值 |
charCode | 该属性包含键盘中对应键位的 Unicode 编码,仅 DOM 支持 |
target | 发生事件的节点(包含元素),仅 DOM 支持 |
srcElement | 发生事件的元素,仅 IE 支持 |
shiftKey | 是否按下 Shift 键,如果按下返回 true,否则为false |
ctrlKey | 是否按下 Ctrl 键,如果按下返回 true,否则为false |
altKey | 是否按下 Alt 键,如果按下返回 true,否则为false |
metaKey | 是否按下 Mtea 键,如果按下返回 true,否则为false,仅 DOM 支持 |
document.onclick = function (e) { var e = e || window.event; //标准化事件对象 var t = e.target || e.srcElement; //获取发生事件的元素,兼容IE和DOM if (e.ctrlKey && e.shiftKey) { //如果同时按下Ctrl和Shift键 t.parentNode.removeChild(t); //移出当前元素 } }
属性 | IE 事件模型 | DOM 事件模型 |
---|---|---|
keyCode(keypress) | 返回所有字符键的正确值,区分大写状态(65~90)和小写状态(97~122) | 功能键返回正确值,而 Shift、Ctrl、Alt、PrintScreen、ScrollLock 无返回值,其他所有键值都返回 0 |
keyCode(keydown) | 返回所有键值(除 PrintScreen 键),字母键都以大写状态显示键值(65~90) | 返回所有键值(除 PrintScreen 键),字母键都以大写状态显示键值(65~90) |
keyCode(keyup) | 返回所有键值(除 PrintScreen 键),字母键都以大写状态显示键值(65~90) | 返回所有键值(除 PrintScreen 键),字母键都以大写状态显示键值(65~90) |
charCode(keypress) | 不支持该属性 | 返回字符键,区分大写状态(65~90)和小写状态(97~122),Shift、Ctrl、Alt、PrintScreen、ScrollLock 无返回值,其他所有键值都返回 0 |
charCode(keydown) | 不支持该属性 | 所有键值为 0 |
charCode(keyup) | 不支持该属性 | 所有键值为 0 |
键位 | 码值 | 键位 | 码值 |
---|---|---|---|
0~9(数字键) | 48~57 | A~Z(字母键) | 65~90 |
Backspace(退格键) | 8 | Tab(制表键) | 9 |
Enter(回车键) | 13 | Space(空格键) | 32 |
Left arrow(左箭头键) | 37 | Top arrow(上箭头键) | 38 |
Right arrow(右箭头键) | 39 | Down arrow(下箭头键) | 40 |
<div id="box"></div> <script> var box = document.getElementById("box"); // 获取页面元素的引用指针 box.style.position = "absolute"; // 色块绝对定位 box.style.width = "20px"; // 色块宽度 box.style.height = "20px"; // 色块高度 box.style.backgroundColor = "red"; // 色块背景 document.onkeydown = keyDown; //在Document对象中注册keyDown事件处理函数 function keyDown(event){ // 方向键控制元素移动函数 var event = event || window.event; // 标准化事件对象 switch(event.keyCode){ // 获取当前按下键盘键的编码 case 37 : // 按下左箭头键,向左移动5个像素 box.style.left = box.offsetLeft - 5 + "px"; break; case 39 : // 按下右箭头键,向右移动5个像素 box.style.left = box.offsetLeft + 5 + "px"; break; case 38 : // 按下上箭头键,向上移动5个像素 box.style.top = box.offsetTop - 5 + "px"; break; case 40 : // 按下下箭头键,向下移动5个像素 box.style.top = box.offsetTop + 5 + "px"; break; } return false } </script>在上面示例中,首先获取页面元素,通过 CSS 脚本控制元素绝对定位、大小和背景色。然后在 document 对象上注册鼠标按下事件类型处理函数,在事件回调函数 keyDown() 中侦测当前按下的方向键,并决定定位元素在窗口中的位置。其中元素的 offsetLeft 和 offsetTop 属性可以存取它在页面中的位置。
<textarea id="text" cols="26" rows="16"></textarea> <script> var n = 1; // 定义编号变量 var text = document.getElementById("text"); // 获取文本区域的引用指针 text.onkeydown = f; // 注册keydown事件处理函数 text.onkeyup = f; // 注册keyup事件处理函数 text.onkeypress = f; // 注册keypress事件处理函数 function f(e){ // 事件调用函数 var e = e || window.event; // 标准化事件对象 text.value += (n++) + "=" + e.type +" (keyCode=" + e.keyCode + ")\n"; //捕获事件响应信息 } </script>演示效果如下:
本文链接:http://task.lmcjl.com/news/15350.html