最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

添加普通鍵盤keydown事件

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

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

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

①使用一個(gè)標(biāo)志變量來(lái)跟蹤按鍵的狀態(tài)

let keyDownFlag = false;

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

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

②通過(guò)事件自帶的屬性判斷

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

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

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

組件鍵的配合使用

組件鍵一般就是就是通過(guò)keydown事件來(lái)觸發(fā)

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

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

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

那我可以通過(guò)上邊的內(nèi)容結(jié)合這幾個(gè)屬性來(lái)監(jiān)聽(tīng)鍵盤事件。

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

雖然mac電腦操作有別于普通win電腦,但并不代表沒(méi)有alt鍵。 在mac電腦找到alt鍵并不難,鍵盤左下角的option鍵其實(shí)就是蘋果的alt鍵,旁邊的control鍵對(duì)應(yīng)pc電腦的ctrl鍵,command鍵對(duì)應(yīng)是win鍵,

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

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

總結(jié)

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

相關(guān)文章

  • 利用JavaScript制作一個(gè)搞怪的兔子動(dòng)畫(huà)效果

    利用JavaScript制作一個(gè)搞怪的兔子動(dòng)畫(huà)效果

    又是一年新春之際,祝福大家兔年快樂(lè)!給大家介紹一個(gè)有趣的動(dòng)效(兼容?IE),頁(yè)面右下角有一只搞怪的兔子,鼠標(biāo)在頁(yè)面中懸停時(shí),兔子會(huì)跟著做出不同的動(dòng)作和表情,感興趣的小伙伴可以了解一下
    2023-01-01
  • 小程序自定義單頁(yè)面、全局導(dǎo)航欄的實(shí)現(xiàn)代碼

    小程序自定義單頁(yè)面、全局導(dǎo)航欄的實(shí)現(xiàn)代碼

    這篇文章主要介紹了小程序自定義單頁(yè)面、全局導(dǎo)航欄的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • Textarea根據(jù)內(nèi)容自適應(yīng)高度

    Textarea根據(jù)內(nèi)容自適應(yīng)高度

    使用JAVASCRIPT控制Textarea內(nèi)容自適應(yīng)高度,實(shí)施起來(lái)很簡(jiǎn)單,很平滑。
    2013-10-10
  • 微信小程序合法域名配置方法

    微信小程序合法域名配置方法

    這篇文章主要介紹了微信小程序合法域名配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • JavaScript防抖案例講解

    JavaScript防抖案例講解

    這篇文章主要介紹了JavaScript防抖案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • JS字符串轉(zhuǎn)換為數(shù)組的4 個(gè)方法示例小結(jié)

    JS字符串轉(zhuǎn)換為數(shù)組的4 個(gè)方法示例小結(jié)

    這篇文章主要介紹了JS字符串轉(zhuǎn)換為數(shù)組的4 個(gè)方法示例小結(jié),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • 微信小程序web-view環(huán)境下H5跳轉(zhuǎn)小程序頁(yè)面方法實(shí)例代碼

    微信小程序web-view環(huán)境下H5跳轉(zhuǎn)小程序頁(yè)面方法實(shí)例代碼

    微信小程序是一種全新的連接用戶與服務(wù)的方式,它可以在微信內(nèi)被便捷地獲取和傳播,同時(shí)具有出色的使用體驗(yàn),下面這篇文章主要給大家介紹了關(guān)于微信小程序web-view環(huán)境下H5跳轉(zhuǎn)小程序頁(yè)面方法的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 微信小程序商城項(xiàng)目之側(cè)欄分類效果(1)

    微信小程序商城項(xiàng)目之側(cè)欄分類效果(1)

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崙?zhàn)商城系列之側(cè)欄分類效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • js中常用的Math方法總結(jié)

    js中常用的Math方法總結(jié)

    本文主要介紹了js中常用的Math方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • js判斷undefined變量類型使用typeof

    js判斷undefined變量類型使用typeof

    js判斷undefined變量類型使用typeof可以輕松實(shí)現(xiàn),不了解的朋友可以參考下哈,希望對(duì)你有所幫助
    2013-06-06

最新評(píng)論

临沭县| 辽阳县| 八宿县| 文昌市| 黄石市| 荃湾区| 凤山市| 布拖县| 涪陵区| 长乐市| 晋中市| 南汇区| 舞钢市| 石楼县| 开远市| 垦利县| 万荣县| 阿克| 布尔津县| 新建县| 南江县| 星子县| 赤水市| 永昌县| 临高县| 汾阳市| 内黄县| 红河县| 若尔盖县| 巨鹿县| 邵东县| 陇西县| 东山县| 内黄县| 东阳市| 渝北区| 石首市| 濮阳县| 沾化县| 德惠市| 和田县|