I want to take keyboard input in JavaScript, where arrow keys, when pressed, will result in the change in shape of a particular shape. How do I take the input of any of the keys in JavaScript?
There are three different keyboard events in JavaScript: keydown : Keydown happens when the key is pressed down, and auto repeats if the key is pressed down for long. keypress : This event is fired when an alphabetic, numeric, or punctuation key is pressed down. keyup : Keyup happens when the key is released.
In JavaScript, we use the prompt() function to ask the user for input. As a parameter, we input the text we want to display to the user. Once the user presses “ok,” the input value is returned. We typically store user input in a variable so that we can use the information in our program.
KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. The event type ( keydown , keypress , or keyup ) identifies what kind of keyboard activity occurred.
key 13 keycode is for ENTER key.
You can do this by registering an event handler on the document or any element you want to observe keystrokes on and examine the key related properties of the event object.
Example that works in FF and Webkit-based browsers:
document.addEventListener('keydown', function(event) { if(event.keyCode == 37) { alert('Left was pressed'); } else if(event.keyCode == 39) { alert('Right was pressed'); } });
DEMO
You should register an event handler on the window or any element that you want to observe keystrokes on, and use the standard key values instead of keyCode. This modified code from MDN will respond to keydown when the left, right, up, or down arrow keys are pressed:
window.addEventListener("keydown", function (event) { if (event.defaultPrevented) { return; // Do nothing if the event was already processed } switch (event.key) { case "ArrowDown": // code for "down arrow" key press. break; case "ArrowUp": // code for "up arrow" key press. break; case "ArrowLeft": // code for "left arrow" key press. break; case "ArrowRight": // code for "right arrow" key press. break; default: return; // Quit when this doesn't handle the key event. } // Cancel the default action to avoid it being handled twice event.preventDefault(); }, true); // the last option dispatches the event to the listener first, // then dispatches event to window
If you are doing this in a browser, you can capture keyboard events.
Can all be listened to on HTML nodes in most browsers.
Webkit also supports...
See for more details .. http://unixpapa.com/js/key.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With