如何停止浏览器的热键?
我正在开发一个HTML5游戏,在我的游戏中您使用空格键进行拍摄。这工作得很好,直到我意识到在较小的屏幕上,空格键会滚动到页面的底部,隐藏游戏的一部分。如何停止浏览器的热键使页面向下滚动?或者我怎样才能在用户点击画布时冻结滚动。以下是本场比赛的链接:http://73.9.75.150:8886/zn/index.html如何停止浏览器的热键?
主要处理代码:
window.addEventListener("keydown", function(e){
keys[e.keyCode] = true;
});
window.addEventListener("keyup", function(e){
keys[e.keyCode] = false;
});
您的典型事件侦听器调用看起来是这样的:
window.addEventListener("keydown", function (e) {
// shoot stuff
});
在上面的回调e
参数是一个事件对象。它有一个方法调用preventDefault(),顾名思义,它将停止事件的默认行为发生。
这是你如何使用它:
window.addEventListener("keydown", function (e) {
if (e.keyCode === Keys.SPACEBAR) { // pseudo-code for key detection
// shoot stuff
e.preventDefault();
}
});
这是一个标准功能,将在最现代的浏览器。您可能需要稍微改变一些旧版浏览器,或者使用库来为您处理跨浏览器事件问题。
谢谢!有用!为我节省了很多时间。 –
可能的解决办法:
document.addEventListener('keydown', function(e){
if(e.keyCode === 32){
e.preventDefault();
}
});
提高答案的好方法是解释为什么这是一个可能的解决方案。欢迎来到Stack Overflow,感谢您的贡献! – krillgar
的可能的复制[按空格键移动页面向下?](http://*.com/questions/2343573/pressing-spacebar-moves-page-down) – JJJ
请出示您问题中的相关密钥处理代码。一般来说,您可能需要使用'event.preventDefault()'来停止关键事件的默认行为。 – nnnnnn
@nnnnnn我添加了代码 –