docs.rodeo

MDN Web Docs mirror

Element: setPointerCapture() method

{{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.

Syntax

setPointerCapture(pointerId)

Parameters

Return value

None ({{jsxref("undefined")}} ).

Exceptions

Examples

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.

HTML

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

CSS

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

JavaScript

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;

Result

{{EmbedLiveSample("Examples")}} 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN