【发布时间】:2020-06-05 16:21:34
【问题描述】:
我正在开发一个 WebGL 应用程序,我使用空格键来移动相机。问题是,当我按下空格键时,网站也会向下滚动。有没有办法禁用此功能?
到目前为止,没有一个答案是可靠的。它们工作大约一秒钟,然后网站向下滚动一小段时间,然后循环重复。
这是我的按键代码:
window.addEventListener("keydown", (e) => {
if(e.repeat) { return; }
if(e.which == 27 || e.which == 9) {
document.exitPointerLock();
checkMouse = false;
}
if(checkMouse) {
if(e.which == 87) { forwardPressed = true; }
if(e.which == 83) { backwardPressed = true; }
if(e.which == 65) { leftPressed = true; }
if(e.which == 68) { rightPressed = true; }
if(e.which == 32) { upPressed = true; event.stopPropagation(); event.preventDefault(); }
if(e.which == 16) { downPressed = true; }
}
});
如您所见,对于空格键,已经实现了一种解决方案,但到目前为止我得到的两种类型的答案都不起作用。
【问题讨论】:
-
您需要在问题中提及您尝试了哪些解决方案以及您遇到的具体问题。否则,您将无法避免获得针对所述问题的通用解决方案。
-
通用的、可靠的解决方案是重复的。如果它对您不起作用,则说明您有一些其他代码在干扰它。
-
if(e.repeat) { return; }event.preventDefault()。 -
...这是一个很好的例子,为什么你应该总是在代码不起作用时展示你的代码,而不是坚持认为其他人都错了。
标签: javascript