Element: setPointerCapture() Methode
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2020.
Die setPointerCapture()
Methode der Element
-Schnittstelle wird verwendet, um ein bestimmtes Element als Capture-Ziel für zukünftige Pointer-Ereignisse festzulegen. Nachfolgende Ereignisse für den Pointer werden auf das Capture-Element gerichtet, bis das Capture freigegeben wird (über Element.releasePointerCapture()
oder das pointerup
Ereignis ausgelöst wird).
Siehe Pointer-Ereignisse für einen Überblick und Beispiele, wie Pointer-Capture funktioniert.
Syntax
setPointerCapture(pointerId)
Parameter
pointerId
-
Die
pointerId
einesPointerEvent
-Objekts.
Rückgabewert
Keiner (undefined
).
Ausnahmen
NotFoundError
DOMException
-
Wird ausgelöst, wenn
pointerId
keinem aktiven Pointer entspricht.
Beispiele
Dieses Beispiel setzt Pointer-Capture auf ein <div>
, wenn darauf gedrückt wird. Dadurch können Sie das Element horizontal verschieben, selbst wenn Ihr Pointer sich außerhalb seiner Grenzen bewegt.
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;
Ergebnis
Spezifikationen
Specification |
---|
Pointer Events> # dom-element-setpointercapture> |
Browser-Kompatibilität
Loading…