JS - 如何禁用空格键滚动,但允许其他空格键功能?
问题描述:
我有一个网站有定期的空格键功能,不只是在输入框内,所以我不能让它返回错误,如果目标是身体。我只是想阻止它向下滚动页面,但允许其他功能。使用vanilla JS可以做到这一点吗?这里是我的代码:JS - 如何禁用空格键滚动,但允许其他空格键功能?
//Many other functions here
function spacebar() {
window.onkeydown = function(e) {
if ((watch.isOn) && (!done)) {//u can stop it with any key
watch.freeze();//stop the stopwatch
}
else if (e.keyCode == 32) {
if (done) {
watch.start();//start the stopwatch
stage = 1;
}
if (stage === 0) {
stage = 1;
}
}
}
<html>
<body>
<h1 id="timer">0:00.000</h1>
<script src="js/timer.js"></script>
<!--The JS starts and stops this timer.-->
</body>
</html>
因此在启动时按下空格键的定时器,当按下任意键停止。
答
按下空格键的默认行为是滚动。我们必须防止默认行为使用
event.preventDefault();
您使用window.onkeydown,传递事件参数的变种E中的能力。正如您已经证明的那样,您知道如何通过键码识别键。现在,如果按下的键是空格键,那么防止默认行为(在这种情况下包括滚动)。您可以选择定义自己的行为。
这更适合于评论,因为它没有提供OP的问题的完整答案。考虑更新它以详细说明这将如何解决问题。 – FluffyKitten
您能解释一下“超载空格键按下事件”是什么意思吗?同时把你的代码放在反引号('')中更好。你也可以解释我把这些代码放在哪里吗? – Cubetastic
您的代码包含onkeydown事件处理。我假设你知道它是如何工作的,而不是从某处复制和粘贴。如果e.keyCode是空格键代码,则应用e.preventDefault()。 –