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

时间:2013-08-30 00:03:36

标签: javascript html css firefox

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

我已经使用了overflow:hidden和meta tag视口。

感谢。

3 个答案:

答案 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