iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0

基礎寫法

document.addEventListener('keydown', function(e){ ... }, false);
// 這邊是監聽整個文件,當然也可以只監聽在某個物件上
  • 括弧內第一個參數是事件類型。
  • keydown 表示當按鍵按下時即觸發第二個參數的函式。
  • 第三個參數為 useCapture,預設為 false,可省略不寫。

事件類型 Event reference 可以參考這裡


找到按鍵的 keyCode

function useKey(e) {
  console.log(e.keyCode);
};

document.addEventListener('keydown', useKey, false);

我們可先先利用 console.log 來查看欲使用的按鍵所對應的 keyCode,
例如按下鍵盤的 R 字鍵時,就會印出 82,這個數字就是 R 字鍵的 keyCode。

或者也可利用像是這種線上小工具來確認你需要的 keyCode。


用按鍵執行的函式

接著就可以將 function 完成囉,假使我今天想設定按下 enter 鍵就會觸發函式時可以寫成這樣:

function useKey(e) {
  if( e.keyCode === 13) {
    接著要執行的動作  
  };
};

document.addEventListener('keydown', useKey, false);

或是想一次設定很多不同按鍵有不同動作時,則可以使用 switch:

function useKey(e) {
  switch(e.keyCode) {
    case 13:
      要做的動作;
      break;
    case 82:
      要做的動作;
      break;
    case 32:
      要做的動作;
      break;
  };
};

document.addEventListener('keydown', useKey, false);

上一篇
[ Day 25 | Essay ] 倒數 5 天
下一篇
[ Day 27 | JS ] 用 mousemove 來做個小遊戲
系列文
大器可以晚成—— 30歲才開始的轉職工程師之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言