From 91e92a2b405b6bd087e20c41da7e4a1683142340 Mon Sep 17 00:00:00 2001 From: skyclouds2001 <95597335+skyclouds2001@users.noreply.github.com> Date: Fri, 27 Sep 2024 13:27:13 +0800 Subject: [PATCH 1/2] add --- .../api/document/pointerlockelement/index.md | 58 +++++++++++++++---- .../shadowroot/pointerlockelement/index.md | 36 ++++++++++++ 2 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 files/zh-cn/web/api/shadowroot/pointerlockelement/index.md diff --git a/files/zh-cn/web/api/document/pointerlockelement/index.md b/files/zh-cn/web/api/document/pointerlockelement/index.md index 8a06ab9eafafc9..78de19d33b8d30 100644 --- a/files/zh-cn/web/api/document/pointerlockelement/index.md +++ b/files/zh-cn/web/api/document/pointerlockelement/index.md @@ -1,30 +1,66 @@ --- title: Document:pointerLockElement 属性 slug: Web/API/Document/pointerLockElement +l10n: + sourceCommit: c99ff93a1b71e7d664509fdd3e0c168920be967a --- -{{APIRef("DOM")}} +{{APIRef("Pointer Lock API")}} -{{domxref("Document")}} 接口的 `pointerLockElement` 只读属性提供了指针锁定时鼠标事件的目标元素。如果指针处于锁定等待中、指针没有被锁定或目标元素在另外一个文档中,返回 `null`。 +{{domxref("Document")}} 接口的 **`pointerLockElement`** 只读属性提供了指针锁定时鼠标事件的目标元素。如果指针处于锁定等待中、指针没有被锁定或目标元素在另外一个文档中,返回 `null`。 ## 值 -一个 {{domxref("Element")}} 或 `null`。 +{{domxref("Element")}} 或 `null`。 ## 示例 -确定一个 canvas 元素当前是否被指针锁定。 +### 检查指针锁定状态 -```js -if (document.pointerLockElement === canvasElement) { - console.log("指针当前已锁定"); - // 做一些有用的响应 -} else { - console.log("指针当前已解锁"); - // 做一些有用的响应 +此示例包含一个 {{htmlelement("div")}} 元素,该元素又包含一个 {{htmlelement("button")}}。单击按钮会请求 `
` 的指针锁定。 + +此示例还监听 {{domxref("Document/pointerlockchange_event", "pointerlockchange")}} 事件:触发此事件时,如果文档中的元素具有指针锁定,则事件处理程序会禁用“锁定”按钮,否则启用该按钮。 + +这样做的效果是,如果您单击“锁定”按钮,指针将被锁定,按钮将被禁用:如果您随后退出指针锁定(例如,按 Escape 键),按钮将再次启用。 + +#### HTML + +```html +
+ +
+``` + +#### CSS + +```css +div { + height: 100px; + width: 200px; + border: 2px solid blue; } ``` +#### JavaScript + +```js +const lock = document.querySelector("#lock"); +const container = document.querySelector("#container"); + +lock.addEventListener("click", () => { + container.requestPointerLock(); +}); + +document.addEventListener("pointerlockchange", () => { + const locked = document.pointerLockElement; + lock.disabled = Boolean(locked); +}); +``` + +#### 结果 + +{{EmbedLiveSample("检查指针锁定状态")}} + ## 规范 {{Specifications}} diff --git a/files/zh-cn/web/api/shadowroot/pointerlockelement/index.md b/files/zh-cn/web/api/shadowroot/pointerlockelement/index.md new file mode 100644 index 00000000000000..fd5606eb39b61b --- /dev/null +++ b/files/zh-cn/web/api/shadowroot/pointerlockelement/index.md @@ -0,0 +1,36 @@ +--- +title: ShadowRoot:pointerLockElement 属性 +slug: Web/API/ShadowRoot/pointerLockElement +l10n: + sourceCommit: c99ff93a1b71e7d664509fdd3e0c168920be967a +--- + +{{APIRef("Pointer Lock API")}} + +{{domxref("ShadowRoot")}} 接口的 **`pointerLockElement`** 只读属性提供在指针锁定时作为鼠标事件目标的元素集。如果指针处于锁定等待中、指针没有被锁定或目标元素在另外一棵树中,则该属性为 `null`。 + +## 值 + +{{domxref("Element")}} 或 `null`。 + +## 示例 + +```js +let customElem = document.querySelector("my-shadow-dom-element"); +let shadow = customElem.shadowRoot; +let pleElem = shadow.pointerLockElement; +``` + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}} + +## 参见 + +- {{ domxref("Document.exitPointerLock()") }} +- {{ domxref("Element.requestPointerLock()") }} +- [Pointer Lock](/zh-CN/docs/Web/API/Pointer_Lock_API) From 305d507a1c8af8a50ea1685407ceb41186124917 Mon Sep 17 00:00:00 2001 From: skyclouds2001 <95597335+skyclouds2001@users.noreply.github.com> Date: Fri, 27 Sep 2024 13:33:03 +0800 Subject: [PATCH 2/2] Update files/zh-cn/web/api/document/pointerlockelement/index.md --- files/zh-cn/web/api/document/pointerlockelement/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/api/document/pointerlockelement/index.md b/files/zh-cn/web/api/document/pointerlockelement/index.md index 78de19d33b8d30..7777e7e4f923c9 100644 --- a/files/zh-cn/web/api/document/pointerlockelement/index.md +++ b/files/zh-cn/web/api/document/pointerlockelement/index.md @@ -21,7 +21,7 @@ l10n: 此示例还监听 {{domxref("Document/pointerlockchange_event", "pointerlockchange")}} 事件:触发此事件时,如果文档中的元素具有指针锁定,则事件处理程序会禁用“锁定”按钮,否则启用该按钮。 -这样做的效果是,如果您单击“锁定”按钮,指针将被锁定,按钮将被禁用:如果您随后退出指针锁定(例如,按 Escape 键),按钮将再次启用。 +这样做的效果是,如果你单击“锁定”按钮,指针将被锁定,按钮将被禁用:如果你随后退出指针锁定(例如,按 Escape 键),按钮将再次启用。 #### HTML