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

JavaScript?鍵盤事件的處理及屬性詳解

 更新時間:2023年01月19日 09:03:32   作者:天行無忌  
這篇文章主要為大家介紹了JavaScript?鍵盤事件的處理及屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

JavaScript 中的事件,當(dāng)用戶或瀏覽器嘗試操作頁面時,就會發(fā)生事件來處理 JavaScript 與HTML的交互。正如大家所知,JavaScript 與HTML一起工作,因此,頁面加載、單擊按鈕、最小化窗口、單擊鼠標(biāo)、敲打鍵盤等發(fā)生的一切都是事件。就像在單擊按鈕時向用戶顯示任何消息一樣,這是通過事件發(fā)生的。

所有HTML元素(如按鈕、文本框、圖像)都可以包含可以使用 JavaScript 代碼觸發(fā)的事件。所有這些事件都是DOM的一部分(文檔對象模型)。在這里,將簡單介紹一下鍵盤事件。

鍵盤事件對象描述了用戶與鍵盤的交互,每個事件都描述了用戶與一個按鍵(或一個按鍵和修飾鍵的組合)的單個交互;事件類型keydown, keypresskeyup 用于識別不同的鍵盤活動類型。

  • keydown:當(dāng)按下鍵盤上的某個鍵時觸發(fā),并在按住該鍵時重復(fù)觸發(fā)。
  • keyup:當(dāng)釋放鍵盤上的鍵時觸發(fā)。
  • keypress:當(dāng)按下 abc 之類的字符鍵盤時觸發(fā),而不是左箭頭鍵、home 或結(jié)束鍵盤,... 當(dāng)按住鍵盤上的鍵時,按鍵也會重復(fù)觸發(fā)。

處理鍵盤事件

要處理鍵盤事件,需要執(zhí)行以下步驟:

  • 首先,選擇將觸發(fā)鍵盤事件的元素,通常是表單元素。
  • 然后,使用 element.addEventListener() 來注冊事件處理程序。

假設(shè)有以下帶有 id 的文本框 message

<input type="text" id="message">

添加事件的代碼如下:

let msg = document.getDocumentById('message');
msg.addEventListener("keydown", (event) => {
    // 事件處理邏輯
});
msg.addEventListener("keypress", (event) => {
    // 事件處理邏輯
});
msg.addEventListener("keyup", (event) => {
    // 事件處理邏輯
});

鍵盤事件屬性

鍵盤事件有兩個重要的屬性:keycode 。key 屬性返回已按下的字符,而 code 屬性返回物理鍵碼。

下面主要簡單說明一下JavaScript代碼部分。

首先,將 DOM 元素賦值給變量以便通過 JavaScript 操作這些元素。

const events = document.querySelector(".event");
const keyEvent = document.querySelector(".event-key .event-value");
const keyCodeEvent = document.querySelector(".event-keyCode .event-value");
const CodeEvent = document.querySelector(".event-code .event-value");
const whichEvent = document.querySelector(".event-which .event-value");
const shiftKey = document.querySelector(".key-shift .key-status");
const ctrlKey = document.querySelector(".key-ctrl .key-status");
const altKey = document.querySelector(".key-alt .key-status");

querySelectorquerySelectorAll 基本上是使用 className 來獲取 Html 元素。它們可用于通過類、ID或標(biāo)簽來獲取元素。querySelectorquerySelectorAll 之間的基本區(qū)別是 querySelectorAll 將返回具有相同類的 NodeList,而 querySelector 將獲取該類的單個元素。如果有多個具有相同類或標(biāo)簽的元素,那么它只會獲取第一個元素。

下面添加事件到相應(yīng)的DOM元素:

function keyboardEvents(e) {
    e.preventDefault();
    activeKey(e);
    if (e.key === " ") {
        keyEvent.style.fontStyle = "italic";
        keyEvent.textContent = "(space)";
    } else {
        keyEvent.textContent = e.key;
        keyEvent.style.fontStyle = "normal";
    }
    keyCodeEvent.textContent = e.keyCode;
    CodeEvent.textContent = e.code;
    whichEvent.textContent = e.which;
}

keyboardEvents 接受一個參數(shù),即 eevent ,該參數(shù)將是包含事件的所有屬性的對象。

  • e.preventDefault() 將阻止瀏覽器的默認(rèn)行為,·例如:按功能鍵。
  • 從 DOM 獲取的所有元素都有一些屬性,textContent 就是其中之一,它將更新元素的內(nèi)容。
  • e 有一些屬性,e.keyCode、e.key 是附加到鍵盤事件的屬性之一,而其他事件如 click、dblclickchange等將包含不同的屬性。
  • 將事件監(jiān)聽器附加到 window,這個是全局元素,事件將委托到 window 下的所有元素。
  • 當(dāng)按下/按下鍵盤鍵時,將觸發(fā) keydown 事件。

現(xiàn)在將處理特殊鍵,如 Shift、CtrlAlt

function specialKeys(e) {
    shiftKey.textContent = e.shiftKey;
    ctrlKey.textContent = e.ctrlKey;
    altKey.textContent = e.altKey;
}

e.shiftKey、e.ctrlKeye.altKey 將分別根據(jù)是否按下鍵返回布爾值 truefalse。并且此函數(shù)分配給兩個事件偵聽器,因為在按下鍵時,它將更新值,并且在按下鍵時,它將返回 false。

以上就是JavaScript 鍵盤事件的處理及屬性詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 鍵盤事件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 前端JavaScript算法找出只出現(xiàn)一次的數(shù)字

    前端JavaScript算法找出只出現(xiàn)一次的數(shù)字

    這篇文章主要為大家介紹了前端JavaScript算法找出只出現(xiàn)一次的數(shù)字的算法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 微信小程序 http請求的session管理

    微信小程序 http請求的session管理

    這篇文章主要介紹了微信小程序 http請求的session管理的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 關(guān)于前端JavaScript ES6詳情

    關(guān)于前端JavaScript ES6詳情

    這篇文章主要介紹了關(guān)于前端JavaScript中的ES6,ES6是一個泛指,含義是 5.1 版以后的 JavaScript 的下一代標(biāo)準(zhǔn),涵蓋了 ES2015、ES2016、ES2017語法標(biāo)準(zhǔn),ES6新特性目前只有在一些較新版本瀏覽器得到支持,老版本瀏覽器里面運行我們需要將ES6轉(zhuǎn)換為ES5
    2021-10-10
  • threeJs實現(xiàn)波紋擴散及光標(biāo)浮動效果詳解

    threeJs實現(xiàn)波紋擴散及光標(biāo)浮動效果詳解

    這篇文章主要為大家介紹了threeJs實現(xiàn)波紋擴散及光標(biāo)浮動效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 詳解JS前端使用迭代器和生成器原理及示例

    詳解JS前端使用迭代器和生成器原理及示例

    這篇文章主要為大家介紹了詳解JS前端使用迭代器和生成器原理及示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 淺談 JavaScript 沙箱Sandbox

    淺談 JavaScript 沙箱Sandbox

    在計算機安全中,沙箱(Sandbox)是一種用于隔離正在運行程序的安全機制,通常用于執(zhí)行未經(jīng)測試或不受信任的程序或代碼,它會 為待執(zhí)行的程序創(chuàng)建一個獨立的執(zhí)行環(huán)境,內(nèi)部程序的執(zhí)行不會影響到外部程序的運行,下文我們來介紹一個“瀏覽器世界”的沙箱
    2021-10-10
  • rollup輸出的6種格式詳解

    rollup輸出的6種格式詳解

    這篇文章主要為大家介紹了rollup輸出的6種格式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 關(guān)于js typeof 與 instanceof 判斷數(shù)據(jù)類型區(qū)別及開發(fā)使用

    關(guān)于js typeof 與 instanceof 判斷數(shù)據(jù)類型區(qū)別及開發(fā)使用

    我們經(jīng)常會遇到判斷一個變量的數(shù)據(jù)類型或該變量是否為空值的情況,你是如何去選擇判斷類型操作符的?本文來記錄一下我們開發(fā)人員必須掌握關(guān)于 typeof 和 instanceof 的知識點及在開發(fā)中的使用建議,同時在面試過程中也經(jīng)常會遇到這樣的問題,需要的朋友可參考下文章內(nèi)容
    2021-10-10
  • 微信小程序tabbar不顯示解決辦法

    微信小程序tabbar不顯示解決辦法

    這篇文章主要介紹了微信小程序tabbar不顯示解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 微信小程序 本地數(shù)據(jù)存儲實例詳解

    微信小程序 本地數(shù)據(jù)存儲實例詳解

    這篇文章主要介紹了微信小程序 本地數(shù)據(jù)存儲實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評論

孟连| 兴和县| 湾仔区| 汪清县| 郓城县| 招远市| 南郑县| 汉源县| 蚌埠市| 佛山市| 清徐县| 万宁市| 年辖:市辖区| 尉犁县| 那坡县| 克什克腾旗| 犍为县| 虹口区| 三门县| 永定县| 合川市| 南宫市| 元氏县| 昭苏县| 五常市| 扎兰屯市| 兴文县| 武陟县| 普定县| 中山市| 双峰县| 平湖市| 清河县| 万山特区| 喜德县| 岳池县| 杨浦区| 澎湖县| 积石山| 漳州市| 宜兰县|