按箭头键时是否可以防止文档滚动?

Rop*_*tah 1 html javascript browser dom-events

很简单:

当用户按下箭头键时,是否可以阻止浏览器滚动?

Jon*_*and 10

是.使用类似:document.getElementById('yourID').onkeypress = HandleKeyPress;

function HandleKeyPress(e) {
    var e = e || window.event;
    switch (e.keyCode) {

        case e.DOM_VK_LEFT:
        case e.DOM_VK_RIGHT:
        case e.DOM_VK_UP:
        case e.DOM_VK_DOWN:
            if (e.preventDefault)
                e.preventDefault();
            else e.returnValue = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这样做可能不是一个好主意.只是要确保你没有忽视一个更好的方法.


Ale*_*ski 7

非常简单:是的,但不要这样做.

改变浏览器操作的基本操作只会使用户感到困惑或愤怒,并使整个体验不那么用户友好.用户应该最终控制他或她的浏览器的运行方式,而不是你.这类似于阻止访问菜单项,或删除上下文菜单等.

  • 只要我的鼠标指针在图表上方,Google财经就会通过接管鼠标滚轮让我发疯.我_never_习惯了这个.但有时候接管一些控制是有道理的.接管浏览器内游戏的光标键非常常见.用户知道如何恢复控制很重要 - 移出游戏区域应该将光标控制返回到默认行为. (2认同)