更新時(shí)間:2022-03-17 來源:黑馬程序員 瀏覽量:
鍵盤事件是指用戶在使用鍵盤時(shí)觸發(fā)的事件。例如,用戶按Esc鍵關(guān)閉打開的狀態(tài)欄,按Enter鍵直接完成光標(biāo)的上下切換等。下面列舉幾個(gè)常用的鍵盤事件,如表所示。
事件名稱 | 事件觸發(fā)時(shí)機(jī) |
keypress | 某個(gè)鍵盤按鍵被按下時(shí)觸發(fā)。不識(shí)別功能鍵,如Ctrl、Shit、箭頭等 |
keydown | 某個(gè)鍵盤按鍵被按下時(shí)觸發(fā) |
keyup | 某個(gè)鍵盤按鍵被松開時(shí)觸發(fā) |
需要注意的是,keypress事件保存的按鍵值是ASCⅡ碼,keydown和keyup事件保存的按鍵值是虛擬鍵碼,keydown和keypress如果按住不放的話,會(huì)重復(fù)觸發(fā)該對(duì)應(yīng)事件。keyup和keydown事件不區(qū)分字母大小寫,而keypress區(qū)分字母大小寫。
在發(fā)生keydown和keypress事件時(shí),event事件對(duì)象的keycode屬性會(huì)包含一個(gè)值,該值與鍵盤上的特定值對(duì)應(yīng)。keycode的值與ASCⅡ碼對(duì)應(yīng)的值相同,例如,keycode值為13表示Enter鍵,keycode值為9表示Tab鍵。讀者可參考MDN等手冊(cè)進(jìn)行查看,此處不再詳細(xì)列舉。
鍵盤事件也有相應(yīng)的鍵盤事件對(duì)象KeyBoardEvent,該對(duì)象是跟鍵盤事件相關(guān)的一系列信息的集合。根據(jù)鍵盤事件對(duì)象中的keyCode屬性可以得到相應(yīng)的ASCIⅡ碼值,進(jìn)而可以判斷用戶按下了哪個(gè)鍵。
為了讓大家更好地理解鍵盤事件的使用,下面我們通過案例的形式進(jìn)行展示。檢測(cè)用戶是否按下了s鍵,如果按下s鍵,就把光標(biāo)定位到搜索框里面,示例代碼如下:
<body> <input type="text"> <script> var search = document.querySelector ('input'); document.addEventListener('keyup', function (e) { if (e.keyCode === 83) { search.focus(); } }); </script> </body>
上述代碼中,第5行代碼綁定了鼠標(biāo)彈起事件,當(dāng)輸入完畢后再進(jìn)行檢測(cè)。第6~8行代碼使用鍵盤事件對(duì)象里面的keyCode判斷用戶按下的是否是s鍵,如果是,則讓搜索框獲取焦點(diǎn),幫助用戶進(jìn)行輸入。
【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個(gè)工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級(jí)均薪12k+
2025-09-19