npm 包 @polymer/iron-a11y-keys-behavior 使用教程

前言

网站在开发的过程中,用户的键盘交互是一项十分重要的因素。对于体验良好的网站来说,键盘交互功能必须实现。而通过 npm 包 @polymer/iron-a11y-keys-behavior,可以帮助开发者非常方便地实现键盘交互功能。本文将为各位读者介绍如何使用该 npm 包。

安装 @polymer/iron-a11y-keys-behavior

使用 @polymer/iron-a11y-keys-behavior,需要先安装该 npm 包。安装可以通过以下命令进行:

--- ------- ------ --------------------------------

使用 @polymer/iron-a11y-keys-behavior

安装完后,在代码中引入该 npm 包:

------ ---------------------- ---- ----------------------------------

接着就可以将该包应用于任何 Polymer 元素。使用该包的方式非常简单,只需在 Polymer 元素引用时加入 behaviors 属性,设置值为 IronA11yKeysBehavior 即可:

------ ---------------- ---- --------------------------------------
------ ---------------------- ---- -----------------------------------

----- --------- ------- -------------- -

  ------ --- ----------- -
    ------ -
      ---------------------
      -- ----- ---------
    -
  -

  ------------- -
    -------- ----------
  -

  ---------- -
    ------------------ --- ----------
  -
-

在上述例子中,Polymer 元素 MyElement 引用了 IronA11yKeysBehavior 包。同时定义了一个 _keyBindings 对象,其中声明了一个 'enter' 键与对应的函数 _onEnter

此时在网页中,当用户按下 enter 键时,会触发 _onEnter 函数,从而打印 enter key pressed

深入了解 @polymer/iron-a11y-keys-behavior

@polymer/iron-a11y-keys-behavior 可以帮助我们方便地实现键盘交互功能,下面分析一下其内部实现。

_createKeymap

这是一个将键名转化为键码的函数,并将键码存储在 _keycodes 对象中。

-------------------------- -
  --- --- - ---
  --- ---- ------------- -- ------------ -
    --- ------- - -------------------------
    --- ----------- - -----------
    --- --------- - -----------
    --- --------
    -- ---------------------------- -- -- -
      ------- - ---
      --------- - --------------------------- ----
    -
    -- ----------------- - -- -
      ------------------ -------- ------- ---- -------- ------- ------ ------- --- ------ --------- ----- ------ -----------
      ---------
    -
    ------- - ------- -- --------------------------------------
    ---------------- - --------
  -
  -------------- - ----
-

_keydownHandler

该函数是在用户按下键盘键时触发。

---------------------- -
  -- ------------- -- ----------------------------------- --- --- -
    -------
  -
  --- --- - ---------------------
  -- ----- -
    --------------------- -------
  -
-

这里会检查是否有需要被忽略的键。如果该键已被设置为不响应,则退出函数。如果该键没有设置为忽略,则通过 _findKey 函数查找该键是否在 _keycodes 中。若在,则通过 _triggerKey 函数触发相应函数。

_findKey

该函数用于查找当前按下的键是否在 _keycodes 中。

--------------- -
  --- --------- - ---
  -- ---------------- -
    --------- -- ---------
  -
  -- --------------- -
    --------- -- --------
  -
  -- -------------- -
    --------- -- -------
  -
  -- --------------- -
    --------- -- --------
  -
  --- --- - ----------------------------------- -- -------------------------------------------------
  -- ---------- -- ---------- -- -- -
    ------ --------- - ----
  - ---- -
    ------ ----
  -
-

该函数会获取按下的键的键码,并根据是否按下了 shift、ctrl、alt、meta 等键,组合键名。比如当同时按下 shift 和 enter 时,_findKey 返回的键值为 shift+enter

_triggerKey

该函数用于触发指定键名对应的函数。

---------------- ------ -
  --- -- - -----------------------
  -- ------- -- --- --------- -
    -- - ---------
  -
  -- ---- -
    ------ ------------- ------ -----
  -
-

传入一个键名 key,该函数会查找 _keyBindings 中该键名对应的函数,并触发该函数。

总结

在本文中,我们介绍了如何使用 npm 包 @polymer/iron-a11y-keys-behavior 实现键盘交互功能。该包在内部实现上通过将键名转化为键码,再触发相应函数,实现了键盘交互功能。同时,该包提供了忽略指定键的功能。

在实际开发中,通过使用该包,我们可以帮助用户通过键盘操作更好地使用网站。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5f756127a9b7065299ccbcbc


猜你喜欢

  • npm 包 go-ipfs 使用教程

    什么是 go-ipfs go-ipfs 是一个在 JavaScript 中使用的 IPFS 客户端。IPFS 是一个点对点传输和存储协议,可以用于分布式 Web 应用程序。

    4 年前
  • npm 包 redisdown 使用教程

    redisdown 是一种用于 Node.js 的 LevelDown 存储后端,可以使用 Redis 作为底层存储。本文将介绍 redisdown 的用法和示例代码,以及使用 redisdown 的...

    4 年前
  • npm 包 cssobject-from-selector 使用教程

    在前端开发中,我们经常需要对 CSS 样式进行操作,例如修改某个元素的样式,或者获取某个元素的样式等。一般情况下,我们可以通过 JavaScript 的 DOM 操作来实现这些功能,但是对于一些复杂的...

    4 年前
  • npm包parse-selector使用教程

    1. 什么是parse-selector? parse-selector是一个npm包,它提供了一个parse函数,用于解析css选择器语法,将其转换成JSON对象。

    4 年前
  • npm 包 apply-selector-and-css 使用教程

    在前端开发中,我们经常需要添加或修改 DOM 元素的样式或者属性。如果只是对单个元素进行操作,直接使用 JavaScript 修改可能还好,但是如果需要对多个元素进行批量操作,手动修改将会非常繁琐。

    4 年前
  • npm 包 tap-browser-el 使用教程

    简介 tap-browser-el 是一个用于在浏览器环境下运行 Tap 测试的 npm 包。Tap 测试是 Node.js 中的一种测试框架,它的结果可以用于跨各种不同平台和语言的测试。

    4 年前
  • npm 包 sqldown 使用教程

    什么是 sqldown? sqldown 是一个基于 Node.js 的 npm 包,它提供了一种将 LevelDB 数据库保存为 SQLite 数据库的方法。它可以实现将从 LevelDB 导出的 ...

    4 年前
  • npm包 orbit-db-test-utils 使用教程

    前言 npm是前端开发中常用的包管理工具,orbit-db-test-utils是其中一个非常实用的npm包。它可以帮助我们建立非常灵活的基于orbit-db的测试环境,让我们可以更加快速地进行程序测...

    4 年前
  • NPM 包 it-to-stream 使用教程

    在前端应用中,将数据从一个应用程序传输到另一个应用程序通常是非常常见的需求,尤其是在现代 Web 应用程序中。随着 Node.js 的出现,许多前端开发人员开始使用它来创建更可靠,高效和安全的 Web...

    4 年前
  • npm 包 @bolt/components-page-footer 使用教程

    npm 是 JavaScript 的包管理工具,它为前端开发者提供了丰富的资源。@bolt/components-page-footer 是 bolt 的组件库之一,用于创建网页脚注栏。

    4 年前
  • npm 包 @bolt/components-page-header 使用教程

    在前端开发中,我们不可避免地需要使用各种外部库和包来帮助我们快速搭建出复杂的网站和应用。其中,npm 包的数量和质量越来越高,让我们可以更轻松地完成一些重复性工作。

    4 年前
  • npm包@bolt/components-site使用教程

    在前端开发中,我们经常使用开源的库和框架,而这些库和框架中往往都会包含很多的组件,这些组件可以让我们快速地搭建我们的应用程序,提高开发效率。在这篇文章中,我们将会介绍一个非常有用的npm包 - @bo...

    4 年前
  • npm 包 @bolt/components-unordered-list 使用教程

    本文将介绍我们前端开发中经常使用的一个 npm 包,它是 @bolt/components-unordered-list。我们将深入了解它的用途、安装、使用方法和示例代码。

    4 年前
  • npm 包 crdts 使用教程

    前言 CRDTs (Conflict-free Replicated Data Types)是一种分布式系统中常用的数据结构,它们能够在不同节点之间进行同步,保证最终达成一致。

    4 年前
  • npm 包 @colony/purser-core 使用教程

    什么是 @colony/purser-core? @colony/purser-core 是一款浏览器原生加密钱包 JavaScript 库,可以用于生成和管理以太坊账户,以及进行交易签名等操作。

    4 年前
  • npm 包 @colony/purser-software 使用教程

    在前端开发的过程中,我们经常需要处理加密与解密的任务。而 @colony/purser-software 这个 npm 包就是专门用来处理以太坊账户和加密的工具库,它提供了一系列的加密方法和通用的钱包...

    4 年前
  • npm 包 @plugnet/wasm-crypto 使用教程

    前言 随着区块链的兴起,密码学变成了日益重要的技术领域。在前端开发中,我们也经常需要使用加密、签名等相关功能。WebAssembly(简称 wasm)可以帮助我们在前端使用更加高效的 C/C++ 代码...

    4 年前
  • npm 包 @plugnet/util-crypto 使用教程

    介绍 @plugnet/util-crypto是一个普及的npm包,它提供了一系列常用的加密算法,比如哈希算法(SHA2、Keccak、Blake2)、HMAC算法等,它是Plgnet开发人员经常使用...

    4 年前
  • npm 包 @plugnet/keyring 使用教程

    前言 @plugnet/keyring 是 Polkadot 生态中的一个 npm 包,用于管理和操作加密的区块链地址和私钥,以及签名和交易。 本教程将会详细介绍如何安装、使用和操作 @plugnet...

    4 年前
  • npm 包 @plugnet/util 使用教程

    前言 在前端开发过程中,我们经常需要使用各种工具来提高我们的开发效率以及代码质量。其中,npm 包是一种非常常见的工具,可以帮助我们轻松地管理项目中所需的依赖项。 在这篇文章中,我们将介绍一个名为 @...

    4 年前

相关推荐

    暂无文章