使用 JavaScript 按下键时如何使键触发?
在 JavaScript 中,按住一个键将持续触发该键,直到它被释放。这种行为可以用在诸如游戏之类的应用程序中,即使在被按住之后,按键也可能只触发一次。这可以使用两种方法来实现:
方法1:使用标志变量检查当前按键状态:定义一个标志变量来跟踪当前按键。 'keyup' 和 'keydown' 事件都设置为修改此标志变量,以便它正确反映按键的当前状态。
'keydown' 事件仅允许在未通过检查标志变量按住键的情况下触发相应的事件。另一方面,'keyup' 事件设置标志变量以指示键已被释放。将这两者与事件侦听器一起使用,可以确保键只触发一次,即使它被按住。
句法:
let isPressed = false;
element.onkeydown = function (e) {
if (!isPressed) {
isPressed = true;
console.log('Key Fired!');
}
};
element.onkeyup = function (e) {
isPressed = false;
}
例子:
How to make a key fire when key
pressed using JavaScript ?
GeeksforGeeks
How to make a key fire only
once when pressed?
Press any button and observe
the logs to verify that a key
only fires once.
输出:
方法2:使用repeat 属性: KeyboardEvent 接口的'repeat' 属性用于检查某个键是否因为被用户按住而重复。可以在每个“keydown”事件上检查此属性,并允许指定的事件仅在它返回 false 时触发。即使用户按住键,这也可以防止键多次触发。
句法:
element.onkeydown = function (e) {
if (!e.repeat) {
console.log("Key Fired!");
}
};
例子:
How to make a key fire when key
pressed using JavaScript ?
GeeksforGeeks
How to make a key fire only
once when pressed?
Press any button and observe
the logs to verify that a key
only fires once.
输出: