js键盘事件
onkeydown:当键盘按键按下的时候触发
onkeyup:当键盘按键抬起的时候触发
event.keyCode:数字类型 键盘按键的值 键值
不是所有元素都能够接收键盘事件,能够响应用户输入的元素,能够接收焦点的元素就能接收键盘事件
onkeydown:如果按下不抬起,那么会连续触发
数字键盘上的键的键码值(keyCode) | 功能键键码值(keyCode) | ||||||
---|---|---|---|---|---|---|---|
按键 | 键码 | 按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
0 | 96 | 8 | 104 | F1 | 112 | F7 | 118 |
1 | 97 | 9 | 105 | F2 | 113 | F8 | 119 |
2 | 98 | * | 106 | F3 | 114 | F9 | 120 |
3 | 99 | + | 107 | F4 | 115 | F10 | 121 |
4 | 100 | Enter | 108 | F5 | 116 | F11 | 122 |
5 | 101 | - | 109 | F6 | 117 | F12 | 123 |
6 | 102 | . | 110 | ||||
7 | 103 | / | 111 |
字母和数字键的键码值(keyCode)
按键键码
A65J74S83149B66K75T84250C67L76U85351D68M77V86452E69N78W87553F70O79X88654G71P80Y89755H72Q81Z90856I73R82048957
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 #box { 8 width: 400px; 9 height: 600px; 10 border: 1px solid; 11 margin: 50px auto 0; 12 position: relative 13 } 14 15 #tank { 16 width: 50px; 17 height: 50px; 18 position: absolute; 19 left: 175px; 20 bottom: 0; 21 background: darkgreen 22 } 23 </style> 24 </head> 25 <body> 26 <div id="box"> 27 <div id="tank"></div> 28 </div> 29 </body> 30 </html> 31 <script> 32 var box=document.getElementById('box') 33 var tank=document.getElementById('tank') 34 document.onkeydown=function(event) 35 //回车键 键值为13 36 { 37 if(event.keyCode==37) { 38 39 /*if(tank.offsetLeft<=0){ 40 tank.style.left=0*/ 41 42 // 三目运算符 43 tank.style.left = tank.offsetLeft > 0 ? tank.offsetLeft - 3 + 'px' : 0 44 45 } 46 /* else { 47 tank.style.left=tank.offsetLeft - 3 + 'px' 48 }*/ 49 50 if(event.keyCode==39){ 51 52 /* if(tank.offsetLeft>=box.offsetWidth-tank.offsetWidth){ 53 tank.style.left= box.offsetWidth-tank.offsetWidth+'px' 54 }else {*/ 55 // 三目运算符 56 tank.style.left=tank.offsetLeft <box.offsetWidth-tank.offsetWidth?tank.offsetLeft+ 3 + 'px':box.offsetWidth-tank.offsetWidth 57 } 58 } 59 /* document.onkeydown=function (event) { 60 console.log(event.keyCode) 61 }*/ 62 // up dowm press(窗口没有事件) 63 </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端