欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js鍵盤事件keydown事件、防止重復觸發(fā)以及組合鍵的配合使用

 更新時間:2024年04月18日 10:11:36   作者:勇敢*牛牛  
這篇文章主要給大家介紹了關于js鍵盤事件keydown事件、防止重復觸發(fā)以及組合鍵配合使用的相關資料,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下

js鍵盤事件keydown事件,防止重復觸發(fā)

鍵盤事件類型主要有三種: keydown 、keypress(不建議使用,部分瀏覽器已放棄)和 keyup 。

添加普通鍵盤keydown事件

// 監(jiān)聽鍵盤按下事件
  document.addEventListener('keydown', function(event) {
    // 輸出按下的鍵的鍵碼
    console.log('Key pressed:', event.key, 'Key code:', event.keyCode);
  });

但是此事件會如果不釋放按鍵就會重復觸發(fā),如何阻止呢?

阻止keydown事件重復觸發(fā)

①使用一個標志變量來跟蹤按鍵的狀態(tài)

let keyDownFlag = false;

  // 監(jiān)聽鍵盤按下事件
  document.addEventListener('keydown', function(event) {
    if (!keyDownFlag) {
      keyDownFlag = true;
      console.log('Key pressed:', event.key, 'Key code:', event.keyCode);
    }
  });

  // 監(jiān)聽鍵盤釋放事件
  document.addEventListener('keyup', function() {
    keyDownFlag = false;
  });

②通過事件自帶的屬性判斷

repeat 屬性可以用于判斷鍵盤事件是否是由按鍵保持按下而持續(xù)觸發(fā)的。

// 監(jiān)聽鍵盤按下事件
  document.addEventListener('keydown', function(event) {
    if (!event.repeat) {
      console.log('Key pressed:', event.key, 'Key code:', event.keyCode);
    }

在這個例子中,event.repeat 屬性被用于檢查是否是由按鍵保持按下而觸發(fā)的事件。如果 event.repeat 為 false,則表示這是一個新的按鍵事件,而不是持續(xù)觸發(fā)的事件。

組件鍵的配合使用

組件鍵一般就是就是通過keydown事件來觸發(fā)

document.onkeydown = function (oEvent) {
    console.log(oEvent);
}

可以看到event對象中返回很多信息,其中keycode屬性中包含一份代碼,是鍵盤上對應的ASCII碼,type是觸發(fā)事件的類型等等…

這里我們有幾個屬性是我們用的到的,就是altkey屬性和ctrlkey屬性還有shiftkey。它們代表著鍵盤上的alt、ctrl、shift鍵對于事件觸發(fā)的判斷。當事件由這幾個鍵觸發(fā)時,它們的值會變成true.

那我可以通過上邊的內容結合這幾個屬性來監(jiān)聽鍵盤事件。

  • 比如要監(jiān)聽ctrl + s的組合事件
document.onkeydown = functionb(oEvent) {
  var oEvent = oEvent || window.oEvent; 
  //獲取鍵盤的keyCode值
  var nKeyCode = oEvent.keyCode || oEvent.which || oEvent.charCode;
  //獲取ctrl 鍵對應的事件屬性
  var bCtrlKeyCode = oEvent.ctrlKey || oEvent.metaKey;
   if( oEvent.nKeyCode == 83 && bCtrlKeyCode  ) {
      alert('save');
       //doSomeThing...
   }
}
  • 比如要監(jiān)聽Alt+ q的組合事件
document.onkeydown = functionb(e) {
	if(e.altKey && e.keyCode == 81){
	      if(e.repeat){
	        return 
	      }
	      //todo somethink
    }
}

雖然mac電腦操作有別于普通win電腦,但并不代表沒有alt鍵。 在mac電腦找到alt鍵并不難,鍵盤左下角的option鍵其實就是蘋果的alt鍵,旁邊的control鍵對應pc電腦的ctrl鍵,command鍵對應是win鍵,

附:判斷按的按鍵是否為ctrl、shift、alt

console.log(ev.ctrlKey);
console.log(ev.shiftKey);
console.log(ev.altKey);

總結

到此這篇關于js鍵盤事件keydown事件、防止重復觸發(fā)以及組合鍵的配合使用的文章就介紹到這了,更多相關js keydown事件防止重復觸發(fā)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論