序列
-
持有除
转移
向下(说
Alt
),
-
持有
转移
向下
-
释放自步骤1以来保持的钥匙,
-
释放
转移
,
结果使“其他键”保持有色,就像
= 'none'
这条线并没有跑过去。
事实上,这里的GIF显示了与上述4个动作相对应的行为:
正如你所看到的,“Alt-up”消息没有打印出来,但相信我,我正在释放
Alt
在压制之间
Shifrt
和释放
转移
。
现在我正在尝试另一个系统
转移
不是唯一的,我可以用
Ctrl
(另一个键例如是4个箭头中的一个)。
为什么?这是不可避免的吗?
window.onkeydown = listenKeyDown;
window.onkeyup = listenKeyUp;
function listenKeyDown(e) {
console.log(e.key + " down")
if (e.altKey) {
document.getElementById('alt').style.background = '#00ff00';
}
if (e.ctrlKey) {
document.getElementById('ctrl').style.background = '#00ff00';
}
if (e.shiftKey) {
document.getElementById('shift').style.background = '#00ff00';
}
let elem = document.getElementById(e.key);
if (elem && !e.altKey && !e.ctrlKey && !e.shiftKey) {
elem.style.background = '#00ff00';
}
}
function listenKeyUp(e) {
console.log(e.key + " up")
if (e.altKey) {
document.getElementById('alt').style.background = 'none';
}
if (e.ctrlKey) {
document.getElementById('ctrl').style.background = 'none';
}
if (e.shiftKey) {
document.getElementById('shift').style.background = 'none';
}
let elem = document.getElementById(e.key);
if (elem && !e.altKey && !e.ctrlKey && !e.shiftKey) {
document.getElementById(e.key).style.background = 'none';
}
}
<div id="alt">Alt</div>
<div id="ctrl">Ctrl</div>
<div id="shift">Shift</div>
<div id="End">End</div>
<div id="Home">Start</div>
<div id="ArrowUp">Up</div>
<div id="ArrowLeft">Left</div>
<div id="ArrowDown">Down</div>
<div id="ArrowRight">Right</div>
<ol>
<li>Hold down a key (listed above, but other than Shift),</li>
<li>Hold Shift down</li>
<li>Release the key of step 1</li>
<li>Release Shift</li>
</ol>