📜  使用 JavaScript 按下键时如何使键触发?

📅  最后修改于: 2022-05-13 01:56:24.319000             🧑  作者: Mango

使用 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.     

                          

输出:
重复使用