los setPointerCapture() método del Element La interfaz se utiliza para designar un elemento específico como el capturar objetivo de futuros eventos de puntero. Los eventos posteriores para el puntero se dirigirán al elemento de captura hasta que se libere la captura (a través de Element.releasePointerCapture() o la pointerup evento se dispara).

Nota: Cuando se establece la captura de puntero, pointerover, pointerout, pointerenter, y pointerleave los eventos solo se generan al cruzar el límite del objetivo de captura. Esto tiene el efecto de suprimir estos eventos en todos los demás elementos.

Descripción general de la captura de puntero

Captura de puntero permite eventos para un particular evento de puntero (PointerEvent) para ser redirigido a un elemento en particular en lugar del normal (o prueba de golpe) apuntar a la ubicación de un puntero. Esto se puede usar para garantizar que un elemento continúe recibiendo eventos de puntero incluso si el contacto del dispositivo puntero se mueve fuera del elemento (como al desplazarse o desplazarse).

Sintaxis

targetElement.setPointerCapture(pointerId);

Parámetros

pointerId
los pointerId de un PointerEvent objeto.

Valor devuelto

Este método devuelve undefined.

Excepciones

Excepción Explicación
NotFoundError pointerId no coincide con ninguno de los punteros activos. Nota: Versiones de Firefox antes de Firefox 82 lanza incorrectamente InvalidPointerId.

Ejemplo

Este ejemplo establece la captura de puntero en un

cuando lo presionas. Esto le permite deslizar el elemento horizontalmente, incluso cuando el puntero se mueve fuera de sus límites.

HTML

<divid="slider">SLIDE MEdiv>

CSS

divwidth: 140px;height: 50px;display: flex;align-items: center;justify-content: center;background: #fbe;

JavaScript

functionbeginSliding(e)
  slider.onpointermove = slide;
  slider.setPointerCapture(e.pointerId);functionstopSliding(e)
  slider.onpointermove =null;
  slider.releasePointerCapture(e.pointerId);functionslide(e)
  slider.style.transform =`translate($e.clientX -70px)`;const slider = document.getElementById('slider');

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

Resultado

Especificaciones

Especificación Estado Comentario
Eventos de puntero – Nivel 2
La definición de ‘setPointerCapture’ en esa especificación.
Recomendación Versión no estable.
Eventos de puntero
La definición de ‘setPointerCapture’ en esa especificación.
Obsoleto Definición inicial.

Compatibilidad del navegador

Escritorio Móvil
Cromo Borde Firefox explorador de Internet Ópera Safari WebView Android Chrome Android Firefox para Android Opera Android Safari en IOS Internet de Samsung
setPointerCapture 55 12 59 Antes de Firefox 82, setPointerCapture() lanza InvalidPointerId para un inválido pointerId argumento. Desde Firefox 82, lanza el especificadoNotFoundError excepción. Ver error 1662124.41 1110 42 13 55 55 79 Antes de Firefox 82, setPointerCapture() lanza InvalidPointerId para un inválido pointerId argumento. Desde Firefox 82, lanza el especificadoNotFoundError excepción. Ver error 1662124.41 42 13 6.0

Ver también

  • Element.releasePointerCapture
  • Pointer Events