@daniel.husar/focus-trap

中文文档
1.0.3发布于 2018/11/09MITCommonJS零依赖近 30 天下载 3万

在元素中添加焦点陷阱

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 构造器 API
  4. 接口
  5. 许可证

焦点陷阱

围绕元素添加焦点陷阱.

添加焦点陷阱是您网站访问的重要内容. 要设置焦点陷阱的最常见例子是模式. 虽然模式是开放的,但用户不应该在模式之外进行标签,焦点应该被锁定在模式元素内. 你要记住确保永远有办法 摆脱这个焦点陷阱 在模式示例中,通常是出逃键,或者在角落关闭按钮.

演示

安装

使用 npm

npm install @daniel.husar/focus-trap

使用线条

yarn add @daniel.husar/focus-trap

使用量

import FocusTrap from '@daniel.husar/focus-trap';
// Setup trap
const trap = new FocusTrap({ node: document.querySelector('#my-trap') });
// Release trap
trap.restore();

构造器 API

带有这些属性的建构器接受对象 :

new FocusTrap({
  node: document.querySelector('#my-trap') }),
  firstElement: () => document.querySelector('#first-element'),
  lastElement: () => document.querySelector('#last-element'),
  disableStartingTrap: () => false,
  disableEndingTrap: () => false,
});

节点

类型 : DOM element

默认 : none

要求 : true

这是您要设置的 DOM 节点

第一元素

类型 : Function

默认 : () => null

要求 : none

函数返回将在焦点启动时跳回时替换第一个元素的元素 。 要连接2个焦点陷阱时全用 。 如果函数返回 falsy 值, 将返回到焦点陷阱中的第一个 Element .

最后一个元素

类型 : Function

默认 : () => null

要求 : none

函数返回将替换最后一个元素, 当焦点将跳回尾端 。 要连接2个焦点陷阱时全用 。 如果函数返回 falsy 值, 则会回落到焦点陷阱中 lastElement .

禁用启动拖放

类型 : Function

默认 : () => false

要求 : none

如果启动陷阱被禁用, 返回布尔函数 .

禁用结束拖放

类型 : Function

默认 : () => false

要求 : none

如果终止陷阱被禁用, 可以返回布尔函数 .

接口

重新计算可实现要素

类型 : Function

重新计算陷阱内的可聚焦元素。 如果节点的内容随时间而变化, 则完全使用 .

恢复

类型 : Function

从元素中删除焦点陷阱 .

许可证

麻省理工学院 丹尼尔·胡萨尔

版本与发布记录

@daniel.husar/focus-trap 共发布 4 个版本,首次发布于 2018/11/09;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.3latest2018/11/098 年前
1.0.22018/11/098 年前
1.0.12018/11/098 年前
1.0.02018/11/098 年前

关于 @daniel.husar/focus-trap 的常见问题

@daniel.husar/focus-trap 是什么?

在元素中添加焦点陷阱

如何安装 @daniel.husar/focus-trap?

在项目目录运行 npm install @daniel.husar/focus-trap,或使用 pnpm add / yarn add / bun add。

@daniel.husar/focus-trap 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/daniel.husar__focus-trap 是否存在。

@daniel.husar/focus-trap 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@daniel.husar/focus-trap 可以商用吗?

@daniel.husar/focus-trap 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@daniel.husar/focus-trap 的下载量有多少?

根据 npm 官方下载统计,@daniel.husar/focus-trap 在 2026/10/11 – 2026/11/09 这 30 天内被下载 29,658 次,日均约 989 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@daniel.husar/focus-trap 还在维护吗?

最新版本 1.0.3 发布于 2018/11/09(8 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/11/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。