DUU*_*123 3 html javascript keyboard
我有一个游戏,玩家可以使用箭头键移动,当我点击向上或向下箭头时,屏幕也会移动。有办法禁用这个吗?
我正在使用以下内容:本地 HTML 页面、Google Chrome、Windows
(仅供参考 - 整个页面不会一次显示)
这是我的代码:
function moveCharacter()
{
// left arrow
if (keys[37])
{
move("left");
}
// up arrow
if (keys[38])
{
move("up");
}
// right arrow
if (keys[39])
{
move("right");
}
// down arrow
if (keys[40])
{
move("down");
}
}
document.body.addEventListener("keydown", function(e)
{
keys[e.keyCode] = true;
moveCharacter();
});
document.body.addEventListener("keyup", function(e)
{
keys[e.keyCode] = false;
});
Run Code Online (Sandbox Code Playgroud)
发生这种情况的原因是,在您观察到按下箭头键后,默认操作会继续发生 - 滚动屏幕。这
event.preventDefault()
Run Code Online (Sandbox Code Playgroud)
方法阻止事件的默认操作发生。
现在,您只想阻止箭头键的默认操作,而不是所有键,否则您将丢失其他按键事件或功能,例如在输入字段中键入。下面的代码封装了这个想法。
document.addEventListener("keydown", function (e) {
// Only intercept the arrow keys, not all keys
if([37,38,39,40].indexOf(e.keyCode) > -1){
e.preventDefault();
// Your code
keys[e.keyCode] = true;
moveCharacter();
}
}, false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2933 次 |
| 最近记录: |