HTML prevent space bar from scrolling page
I'm using the code:
window.onkeydown = function(e) {
return !(e.keyCode == 32);
};
which does exactly what I want, stops the page from scrolling when the spacebar is pressed. However it also prevents the user from typing spaces in a textbox
Is there a way to prevent the spacebar-scroll as well as retain the spacebar functionality while typing?
Try checking if target
is the body:
window.addEventListener('keydown', function(e) {
if(e.keyCode == 32 && e.target == document.body) {
e.preventDefault();
}
});
body { height: 100000px; }
<input />
<textarea></textarea>
Demo
You could look into e.target
and if it is the body you return false
.
window.onkeydown = function(e) {
return !(e.keyCode == 32 && e.target == document.body);
};