iT邦幫忙

0

請問html、js 的鍵盤事件問題

hihi 2022-07-08 17:45:281249 瀏覽
  • 分享至 

  • xImage

各位前輩們好

需求: 想在html tag上直接新增對應鍵盤的key code

舉例: 假設我有三張 img 分別綁定上鍵盤上的abc鍵

想請問有辦法做到這件事情嗎,請前輩們給點指點或關鍵字,十二萬分感謝

https://ithelp.ithome.com.tw/upload/images/20220708/201439148XdkjPMWUP.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
greenriver
iT邦研究生 5 級 ‧ 2022-07-11 08:44:06
最佳解答

這篇可以參考使用 第 22 天 Keydown事件
如果是要按下不同key來改變圖案,大概是這樣

<img id="myImg" src="./a.png"> //只會有一個img


window.addEventListener('keyup',function(e){
	if(e.key == 'a') {//將img的src改成./a.png}
    if(e.key == 'b') {//將img的src改成./b.png}
    if(e.key == 'c') {//將img的src改成./c.png}
})

或者也可以放三個img

<img id="myImgA" class="active" src="./a.png"> //初始值,顯示
<img id="myImgB" class="hidden" src="./b.png"> //初始值,隱藏
<img id="myImgC" class="hidden" src="./c.png"> //初始值,隱藏

window.addEventListener('keyup',function(e){
	if(e.key == 'a') {//myImgA的class=active myImgB、myImgC的class=hidden}
    if(e.key == 'b') {//myImgB的class=active myImgA、myImgC的class=hidden}
    if(e.key == 'c') {//myImgC的class=active myImgA、myImgB的class=hidden}
})
hihi iT邦新手 5 級 ‧ 2022-07-11 10:08:37 檢舉

感謝大大提供方法 /images/emoticon/emoticon41.gif

0

有如下的事件可以使用
onkeypress
onkeyup
onkeydown

如果是依遊戲按鍵的話。我會建議「onkeydown」

對應的方式如下

<script>
<input type="button" onkeydown="checkForm()" value="按看看" />
function checkKey(){
    console.log('keyCode',event.keyCode);//可以先由這邊查看按鍵代碼
    //要注意,英文大小寫會不一樣
    
    //這是簡單的判斷按下 ENTER(13)則觸發按下Tab(9)鍵
    if(event.keyCode ==13){
        event.keyCode =9;
    }
}
</script>
看更多先前的回應...收起先前的回應...
hihi iT邦新手 5 級 ‧ 2022-07-08 18:53:39 檢舉

大大您好,這個我有在網路上找到,但因為小弟JS新手,funciton沒有寫的&切的很好,有試過用這種方法去call function,但會整個變很奇怪

hihi iT邦新手 5 級 ‧ 2022-07-08 18:54:41 檢舉

所以才會想說有沒有辦法直接在HTML標籤上加上對應鍵盤的key code !? 這樣js的內容也不用再整個大改

請問你的綁定是甚麼意思?

我只是拋出應用的方式,並沒打算幫你寫到好。
如果你只想拿現成就可以用的。
那就不要找我。
如果你想找有無可直接支援的HTML元件。

有是有,但會比我目前教你的還要複雜。
因為你得掛好元件,及載入對應應用的插件。
如果連這樣簡單基本的JS都搞不定的話。
我相信這種方式你會更搞不定。

有心的話,請不要拿「新手」來當你的藉口。

hihi iT邦新手 5 級 ‧ 2022-07-11 10:06:34 檢舉

好的謝謝大大提供方法,我再來想下寫法
感恩您不吝嗇指教

hihi iT邦新手 5 級 ‧ 2022-07-11 10:09:11 檢舉

/images/emoticon/emoticon41.gif

我要發表回答

立即登入回答