[英]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.