我想知道用户在mousemove期间按下 Shift 键的时间。
问题是当按下 Ctrl , Shift 或 Alt 时,Windows不会触发keydown事件。相反,在释放密钥时触发事件。在Mac上,一切都按预期工作,但是当你按下键时会触发keydown
关于鼠标移动事件的相同问题。 event.shiftKey只有在你按住 Shift 并触发了mousedown后才会成立......
这有什么变通方法吗?这是一个例子:https://jsfiddle.net/ecz0deqw/4/
document.onkeydown = function (e) {
addText('Key pressed: ' + e.key)
};
document.onmousemove = function (e) {
if(e.shiftKey)
addText('ShiftMove');
else {
addText('NoShift')
}
}
function addText(text) {
var newP = document.createElement("p");
newP.innerText = text;
document.body.insertBefore(newP,document.body.childNodes[0]);
}
谢谢/ Eric
答案 0 :(得分:0)
您的Windows计算机是VM吗? Parallels(至少)使用修饰键进行有趣的操作。
在Actions
>下Configure
转到Mouse & Keyboard
标签。在Keyboard
标签旁边,选择Optimize for games
。
Parallels在该选项下面指出:"当键盘针对游戏进行优化时,修饰键变得更具响应性。"