首页 > 解决方案 > Javascript禁用空格键滚动

问题描述

我正在开发一个 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; }
    }
});

如您所见,对于空格键,已经实现了一种解决方案,但是到目前为止我得到的两种答案都不起作用。

标签: javascript

解决方案


你可以这样做

$(document).keypress(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);

    if(keycode == '32') {
        event.preventDefault();
    }
});

推荐阅读