files/en-us/web/api/element/setpointercapture/index.md
{{APIRef("DOM")}}
The setPointerCapture() method of the
{{domxref("Element")}} interface is used to designate a specific element as the
capture target of future pointer events. Subsequent events for the pointer will
be targeted at the capture element until capture is released (via
{{domxref("Element.releasePointerCapture()")}} or the
{{domxref("Element/pointerup_event", "pointerup")}} event is fired).
See pointer events for an overview and examples of how pointer capture works.
setPointerCapture(pointerId)
pointerId
None ({{jsxref("undefined")}}).
NotFoundError {{domxref("DOMException")}}
pointerId does not match any active pointer.This example sets pointer capture on a {{HtmlElement("div")}} when you press down on it. This lets you slide the element horizontally, even when your pointer moves outside of its boundaries.
<div id="slider">SLIDE ME</div>
div {
width: 140px;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
background: #ffbbee;
touch-action: none;
}
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;
{{EmbedLiveSample("Examples")}}
{{Specifications}}
{{Compat}}