我已经在JS中添加了一个事件监听器来监听keyup/keydown事件,我试图在HTML画布上移动一个精灵。我大部分工作都做好了,但是当用户按下箭头键时,页面被滚动。
我正在返回false,但这似乎不起作用。此外,我的理解是以这种方式返回false会禁用整个页面的箭头按钮滚动。我希望仅在用户与画布本身交互时禁用它。
以下是我的事件监听器:
我正在返回false,但这似乎不起作用。此外,我的理解是以这种方式返回false会禁用整个页面的箭头按钮滚动。我希望仅在用户与画布本身交互时禁用它。
以下是我的事件监听器:
addEventListener('keydown', function(e){
move = false;
x = false;
y = false;
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
switch(keycode){
case 37:
move = true;
x = 'negative';
break;
case 38:
move = true;
y = 'negative'
break;
case 39:
move = true;
x = 'positive'
break;
case 40:
move = true;
y = 'positive'
break;
}
if(move){
animation.move(x,y);
}
return false;
})
编辑:
下面的答案有一个好主意,可以确保画布聚焦,但是我仍然困惑为什么在我的EventListener函数中返回false并没有禁用滚动。