スペースバーを押したときのスクロールダウンを無効にしたい。これはFirefoxでのみ発生します。
私はすでにoverflow:hiddenおよびメタタグビューポートを使用しています。
ありがとう。
これでうまくいくはずです。ページ/ドキュメントでスペースバーを押すと、デフォルトの動作が妨げられるだけでなく、元の状態に戻ると記載されています。
falseを返すとpreventDefaultが含まれるようです。 ソース
キーダウンイベントの詳細については、JQuery APIを確認してください- 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
ソース 。
The event.which property normalizes event.keyCode and event.charCode
JQueryは、さまざまなイベントのノーマライザとして機能します。これを読んでいる人が驚いた場合。 Event Object のドキュメントを読むことをお勧めします。
スペースバーが押されているかどうかを検出します。そうであれば、デフォルトの動作を回避します。
document.documentElement.addEventListener('keydown', function (e) {
if ( ( e.keycode || e.which ) == 32) {
e.preventDefault();
}
}, false);
JavaScriptでキーダウンイベントをキャプチャしようとしましたか? jQueryを使用している場合は、ここでキーイベントのキャプチャについて詳しく読むことができます。 http://api.jquery.com/keydown/
そうでない場合は、ここで説明するようにスペースバーのキープレスをキャプチャして無視できます: https://stackoverflow.com/a/2343597/1019092