Element: releasePointerCapture() 方法

Baseline 已广泛支持

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2020 年 7 月以来,它已在各大浏览器中可用。

Element 接口的 releasePointerCapture() 方法会释放(停止)之前为特定(PointerEvent指针 设置的指针捕获

语法

js
releasePointerCapture(pointerId)

参数

pointerId

PointerEvent 对象的 pointerId

返回值

无(undefined)。

异常

NotFoundError DOMException

如果 pointerId 与任何活动指针都不匹配,则抛出异常。

示例

本示例在按下 <div> 时为其设置指针捕获。这允许您水平滑动元素,即使您的指针移出了其边界。

HTML

html
<div id="slider">SLIDE ME</div>

CSS

css
div {
  width: 140px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffbbee;
}

JavaScript

js
const slider = document.getElementById("slider");

function beginSliding(e) {
  slider.onpointermove = slide;
  slider.setPointerCapture(e.pointerId);
}

function stopSliding(e) {
  slider.onpointermove = null;
  slider.releasePointerCapture(e.pointerId);
}

function slide(e) {
  slider.style.transform = `translate(${e.clientX - 70}px)`;
}

slider.onpointerdown = beginSliding;
slider.onpointerup = stopSliding;

结果

规范

规范
指针事件
# dom-element-releasepointercapture

浏览器兼容性

另见