news 2026/5/9 12:41:00

键盘按键测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
键盘按键测试

参考:https://www.keyboardtest.cn/

三种布局

全键盘

隐藏数字区域

隐藏方向区域和数字区域

<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <title>键盘测试</title> </head> <style> body { background:#111; } h1,h2 { text-align:center; color:#eee; } p { color:#eee; } a { text-decoration:none; color:#eee; } button { width:50px; height:50px; margin:5px; background:#333; color:#eee; border-radius:10px; box-shadow:0 5px #444; } table { } tr { white-space: nowrap; } td { vertical-align:top; padding:0; } .keydown { background:#ffffff; color:#000000; } .keyup { background:#004400; color:#00aa00; } #info { color:#fff; padding-left:50px; } #keyboard { border:1px solid gray; border-radius:20px; padding:30px; margin:auto; } #k112 { margin-left:50px; } #k116 { margin-left:40px; } #k120 { margin-left:40px; } #k8 { width:110px; } #k9 { width:76px; } #k220 { width:76px; } #k107, #k13a { height:110px; } #k20 { width:90px; } #k13, #k16 { width:127px; } #k16a { width:155px; } #k17, #kwin, #k18, #k18a, #kfn, #k93, #k17a { width:65px; } #k32 { width:385px; } #k96 { width:112px; } #padmove { padding:0 0 0 30px; } #padnum { padding:60px 0 0 30px; } #arrow { margin-top:60px; } </style> <body> <h1>键盘测试</h1> <p><input type="checkbox" id="check_padmove" checked>PadMove <input type="checkbox" id="check_padnum" checked>PadNum <span id="info">key keyCode location down/up </span></p> <table id="keyboard"> <tr> <td> <button id="k27">Esc</button> <button id="k112">F1</button> <button id="k113">F2</button> <button id="k114">F3</button> <button id="k115">F4</button> <button id="k116">F5</button> <button id="k117">F6</button> <button id="k118">F7</button> <button id="k119">F8</button> <button id="k120">F9</button> <button id="k121">F10</button> <button id="k122">F11</button> <button id="k123">F12</button> <br> <button id="k192">`</button><button id="k49">1</button><button id="k50">2</button> <button id="k51">3</button> <button id="k52">4</button> <button id="k53">5</button> <button id="k54">6</button> <button id="k55">7</button> <button id="k56">8</button> <button id="k57">9</button> <button id="k48">0</button> <button id="k189">-</button> <button id="k187">=</button> <button id="k8">BackSpace</button> <br> <button id="k9">Tab</button> <button id="k81">Q</button> <button id="k87">W</button> <button id="k69">E</button> <button id="k82">R</button> <button id="k84">T</button> <button id="k89">Y</button> <button id="k85">U</button> <button id="k73">I</button> <button id="k79">O</button> <button id="k80">P</button> <button id="k219">[</button> <button id="k221">]</button> <button id="k220">\</button> <br> <button id="k20">CapsLk</button> <button id="k65">A</button> <button id="k83">S</button> <button id="k68">D</button> <button id="k70">F</button> <button id="k71">G</button> <button id="k72">H</button> <button id="k74">J</button> <button id="k75">K</button> <button id="k76">L</button> <button id="k186">;</button> <button id="k222">'</button> <button id="k13">Enter</button> <br> <button id="k16">Shift</button> <button id="k90">Z</button> <button id="k88">X</button> <button id="k67">C</button> <button id="k86">V</button> <button id="k66">B</button> <button id="k78">N</button> <button id="k77">M</button> <button id="k188">,</button> <button id="k190">.</button> <button id="k191">/</button> <button id="k16a">Shift</button> <br> <button id="k17">Ctrl</button> <button id="kwin">Win</button> <button id="k18">Alt</button> <button id="k32">Space</button> <button id="k18a">Alt</button> <button id="kfn">Fn</button> <button id="k93">Menu</button> <button id="k17a">Ctrl</button> </td> <td id="padmove"> <button id="PrintScreen">PrtSc</button> <button id="k145">ScrLk</button> <button id="k19">Pause</button><br> <button id="k45">Insert</button> <button id="k36">Home</button> <button id="k33">PgUp</button><br> <button id="k46">Del</button> <button id="k35">End</button> <button id="k34">PgDn</button> <table id="arrow"> <tr><td></td><td><button id="k38">↑</button></td><td></td></tr> <tr><td><button id="k37">←</button></td><td><button id="k40">↓</button></td><td><button id="k39">→</button></td></tr> </table> </td> <td id="padnum"> <table> <tr><td><button id="k144">Num</button></td><td><button id="k111">/</button></td><td><button id="k106">*</button></td><td><button id="k109">-</button></td></tr> <tr><td><button id="k103">7</button></td><td><button id="k104">8</button></td><td><button id="k105">9</button></td><td rowspan="2"><button id="k107">+</button></td></tr> <tr><td><button id="k100">4</button></td><td><button id="k101">5</button></td><td><button id="k102">6</button></td></tr> <tr><td><button id="k97">1</button></td><td><button id="k98">2</button></td><td><button id="k99">3</button></td><td rowspan="2"><button id="k13a">Ent</button></td></tr> <tr><td colspan="2"><button id="k96">0</button></td><td><button id="k110">.</button></td></tr> </table> </td> </tr> </table> </div> <br> <a href="https://www.keyboardtest.cn/" target="_blank">keyboardtest</a> <script> document.onkeydown = function(e){ info.innerText = e.key + ' ' + e.keyCode + ' ' + e.location + ' down'; if (e.location == 2) eval('k' + e.keyCode + 'a').className = 'keydown'; else if (e.key == 'Enter' && e.location == 3) eval('k' + e.keyCode + 'a').className = 'keydown'; else eval('k' + e.keyCode).className = 'keydown'; //禁止浏览器快捷键 e.preventDefault(); e.stopPropagation(); return false; } document.onkeyup = function(e){ info.innerText = e.key + ' ' + e.keyCode + ' ' + e.location + ' up'; if (e.location == 2) eval('k' + e.keyCode + 'a').className = 'keyup'; else if (e.key == 'Enter' && e.location == 3) eval('k' + e.keyCode + 'a').className = 'keyup'; else eval('k' + e.keyCode).className = 'keyup'; } check_padmove.onclick = function(){ if (check_padmove.checked == true) padmove.style.display = 'block'; else padmove.style.display = 'none'; } check_padnum.onclick = function(){ if (check_padnum.checked == true) padnum.style.display = 'block'; else padnum.style.display = 'none'; } </script> </body> </html>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 16:16:17

ubuntu通过windows主机访问网络

背景&#xff1a;校园网限制用户连接数量 方法&#xff1a;用usb网卡。用一台windows主机连接校园网登录&#xff0c;插usb网卡连网线到ubuntu机器&#xff1b;ubuntu机器不需要什么额外配置&#xff0c;windows更改网络适配器设置&#xff0c;把 校园网连接->属性->共享…

作者头像 李华
网站建设 2026/5/5 15:26:58

Doris与Flink整合实战:构建流批一体的大数据处理平台

Doris与Flink整合实战&#xff1a;构建流批一体的大数据处理平台 关键词&#xff1a;Doris、Flink、流批一体、大数据处理平台、实时计算 摘要&#xff1a;本文聚焦于Doris与Flink的整合&#xff0c;旨在构建流批一体的大数据处理平台。详细介绍了Doris和Flink的核心概念及两者…

作者头像 李华
网站建设 2026/5/8 4:50:11

【C标准库】一文吃透 C 语言 assert 断言

文章目录一、assert 是什么&#xff1f;二、基本语法和使用步骤2.1 核心语法2.2 最简单的示例三、assert 的工作机制3.1 如何定义 NDEBUG&#xff08;关闭断言&#xff09;&#xff1f;四、assert 的适用场景五、assert 的使用禁忌禁忌1&#xff1a;断言中包含有副作用的表达式…

作者头像 李华
网站建设 2026/5/9 9:54:31

社会网络仿真软件:NetLogo_(17).NetLogo教学与研究资源

NetLogo教学与研究资源 在社会网络仿真的研究和教学中&#xff0c;NetLogo 提供了丰富的资源和工具&#xff0c;帮助用户更好地理解和应用这一强大的仿真平台。本节将详细介绍 NetLogo 的教学与研究资源&#xff0c;包括官方文档、示例模型、在线教程、社区支持以及第三方资源等…

作者头像 李华