在firefox上按空格键时禁用向下滚动

Alb*_*piz 20 html javascript css firefox

我想按下空格键时禁用向下滚动.这只发生在firefox中.

我已经使用overflow:hidden和meta标签视口.

谢谢.

Mic*_*rtz 39

这应该可以解决问题.它指出,当在页面/文档上按下空格键时,它不仅会阻止其默认行为,还会恢复到原始状态.

return false似乎包含preventDefault.资源

有关keydown事件的更多信息,请查看JQuery API - http://api.jquery.com/keydown/

window.onkeydown = function(e) { 
    return !(e.keyCode == 32);
};
Run Code Online (Sandbox Code Playgroud)

JQuery示例

$(document).keydown(function(e) {
    if (e.which == 32) {
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@ amber-de-black所说"上面的代码将阻止在HTML输入上按空格键".要解决此问题e.target,您需要确切地阻止空格键.这可以防止空格键阻止HTML输入等其他元素.

在这种情况下,我们指定空格键以及正文目标.这样可以防止输入被阻止.

window.onkeydown = function(e) {
  if (e.keyCode == 32 && e.target == document.body) {
    e.preventDefault();
  }
};
Run Code Online (Sandbox Code Playgroud)

注意:如果您使用的是JQuery e.which而不是e.keyCode Source.

The event.which property normalizes event.keyCode and event.charCode

JQuery充当各种事件的规范化器.如果这对任何阅读此内容的人都感到惊讶.我建议阅读他们的事件对象文档.


ban*_*aka 8

检测是否按下了空格键.如果是,则阻止其默认行为.

document.documentElement.addEventListener('keydown', function (e) {
    if ( ( e.keycode || e.which ) == 32) {
        e.preventDefault();
    }
}, false);
Run Code Online (Sandbox Code Playgroud)