Je veux désactiver le défilement vers le bas lorsque j'ai appuyé sur la barre d'espace. Cela ne se produit que dans Firefox.
J'utilise déjà la fenêtre de débordement: caché et méta tag.
Merci.
Cela devrait faire l'affaire. Il indique que lorsque la barre d'espace est enfoncée sur la page/le document, elle n'empêche pas seulement son comportement par défaut, mais revient à son état d'origine.
return false semble inclure preventDefault. Source
Consultez les API JQuery pour plus d'informations sur les événements de keydown - http://api.jquery.com/keydown/
window.onkeydown = function(e) {
return !(e.keyCode == 32);
};
Exemple JQuery
$(document).keydown(function(e) {
if (e.which == 32) {
return false;
}
});
[~ # ~] modifier [~ # ~] :
Comme l'a déclaré @ amber-de-black "le code ci-dessus bloquera la pression de la touche espace sur les entrées HTML". Pour résoudre ce problème, vous e.target
où exactement vous voulez que la barre d'espace soit bloquée. Cela peut empêcher la barre d'espace de bloquer d'autres éléments comme les entrées HTML.
Dans ce cas, nous spécifions la barre d'espace avec la cible du corps. Cela empêchera les entrées d'être bloquées.
window.onkeydown = function(e) {
if (e.keyCode == 32 && e.target == document.body) {
e.preventDefault();
}
};
[~ # ~] note [~ # ~] : Si vous utilisez JQuery, utilisez e.which
au lieu de e.keyCode
Source .
The event.which property normalizes event.keyCode and event.charCode
JQuery agit comme un normalisateur pour une variété d'événements. Si cela surprend quiconque lit ceci. Je recommande de lire leur documentation Event Object .
Détectez si la barre d'espace est enfoncée. Si c'est le cas, empêchez son comportement par défaut.
document.documentElement.addEventListener('keydown', function (e) {
if ( ( e.keycode || e.which ) == 32) {
e.preventDefault();
}
}, false);
Avez-vous essayé de capturer l'événement keydown en javascript? Si vous utilisez jQuery, vous pouvez en savoir plus sur la capture des événements clés ici: http://api.jquery.com/keydown/
Si vous ne l'êtes pas, vous pouvez capturer et ignorer la touche de la barre d'espace comme décrit ici: https://stackoverflow.com/a/2343597/1019092