繁体   English   中英

防止空格和箭头键滚动网页?

[英]Prevent space and arrow keys scrolling web page?

当元素被聚焦以在网页上提供键盘支持时,我将覆盖空格键和箭头键的行为。 我需要禁用这些键的默认行为,即滚动网页。 我认为做到这一点所需要的只是在处理事件时return false ,但这并没有成功。 我还添加了preventDefault但除了执行自定义操作外,它仍然滚动页面。 这里有什么问题?

document.getElementById('someID').onkeyup = function(e) {
    var keyCode = e.which || e.keyCode;
    var handled = false;

    if (keyCode == 38 || keyCode == 40) { //up or down arrow
        //do something fun
        e.preventDefault();
        handled = true;
    }

    return !handled; //return false if the event was handled
}

将事件更改为onkeydown 当你到达onkeyup时已经太晚了,滚动已经改变了。

document.getElementById('someID').onkeydown = function(e) {
    var keyCode = e.which || e.keyCode;
    var handled = false;

    if (keyCode == 38 || keyCode == 40) { //up or down arrow
        //do something fun
        e.preventDefault();
        handled = true;
    }

    return !handled; //return false if the event was handled
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM