我想在按空格键时禁用向下滚动。这只发生在firefox中。
我已经使用了overflow:hidden和meta tag视口。
感谢。
答案 0 :(得分:37)
这应该可以解决问题。它声明当在页面/文档上按空格键时,它不仅会阻止其默认行为,还会恢复到原始状态。
return false似乎包含preventDefault。 Source
检查JQuery API以获取有关keydown事件的更多信息 - http://api.jquery.com/keydown/
window.onkeydown = function(e) {
return !(e.keyCode == 32);
};
JQuery示例
$(document).keydown(function(e) {
if (e.which == 32) {
return false;
}
});
修改强>:
正如@ amber-de-black所说“上面的代码将阻止在HTML输入上按空格键”。要解决此问题,请e.target
确切地阻止空格键。这可以防止空格键阻止HTML输入等其他元素。
在这种情况下,我们指定空格键和主体目标。这样可以防止输入被阻止。
window.onkeydown = function(e) {
if (e.keyCode == 32 && e.target == document.body) {
e.preventDefault();
}
};
注意:如果您使用的是JQuery,请使用e.which
代替e.keyCode
Source。
The event.which property normalizes event.keyCode and event.charCode
JQuery充当各种事件的规范化器。如果这对任何阅读此内容的人都感到惊讶。我建议您阅读他们的Event Object文档。
答案 1 :(得分:7)
检测是否按下了空格键。如果是,则阻止其默认行为。
document.documentElement.addEventListener('keydown', function (e) {
if ( ( e.keycode || e.which ) == 32) {
e.preventDefault();
}
}, false);
答案 2 :(得分:0)
您是否尝试过在javascript中捕获keydown事件?如果您使用的是jQuery,可以在此处阅读有关捕获关键事件的更多信息: http://api.jquery.com/keydown/
如果你不是,你可以捕捉并忽略空格键按键,如下所述: https://stackoverflow.com/a/2343597/1019092