Element: setPointerCapture() 方法
Element 接口的 setPointerCapture() 方法用于将一个特定元素指定为未来指针事件的捕获目标。该指针的后续事件将定向到捕获元素,直到捕获被释放(通过 Element.releasePointerCapture() 或触发 pointerup 事件)。
有关指针捕获工作原理的概述和示例,请参阅 指针事件。
语法
js
setPointerCapture(pointerId)
参数
返回值
无(undefined)。
异常
NotFoundErrorDOMException-
如果
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;
touch-action: none;
}
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-setpointercapture |
浏览器兼容性
加载中…