【发布时间】:2011-11-28 00:33:47
【问题描述】:
我在 JS 中添加了一个事件监听器来监听 keyup/keydown 事件,我试图在 HTML 画布上移动一个精灵。我大部分时间都在工作,但是当用户按下箭头键时页面正在滚动。
我返回 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;
})
编辑:
下面的答案很好地说明了如何确保画布被聚焦,但我仍然很困惑为什么在返回 false 的 EventListener 函数中返回 false 不会禁用滚动。
【问题讨论】:
标签: javascript scroll addeventlistener html5-canvas event-listener