PointerEvent

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020.

PointerEvent 인터페이스는 포인터에 의해 발생한 DOM 이벤트의 상태, 즉 접촉점의 위치와 크기, 이벤트를 유발한 장치의 유형, 접촉면에 가해진 압력 등을 나타냅니다.

"포인터"란 화면과 같은 접촉면 상의 한 좌표 또는 좌표들을 조준할 수 있는 입력 장치를 통칭하며 특정 하드웨어로 제한되지 않습니다. 마우스, 펜, 터치 접촉점 등은 모두 포인터 장치입니다.

포인터의 "적중 테스트"는 브라우저가 포인터 이벤트의 대상 요소를 결정하는 과정입니다. 보통 포인터의 위치 외에도 화면 매체 상의 문서에서 요소가 차지하는 시각적 레이아웃도 고려합니다.

Event UIEvent MouseEvent PointerEvent

생성자

PointerEvent()

신뢰되지 않는 인공 PointerEvent를 생성합니다.

인스턴스 속성

MouseEventEvent 인터페이스의 속성을 상속합니다.

PointerEvent.pointerId 읽기 전용

이벤트를 유발한 포인터의 고유 식별자입니다.

PointerEvent.width 읽기 전용

포인터 접촉점의 너비(X축 크기)를 CSS 픽셀 단위로 나타낸 값입니다.

PointerEvent.height 읽기 전용

포인터 접촉점의 높이(Y축 크기)를 CSS 픽셀 단위로 나타낸 값입니다.

PointerEvent.pressure 읽기 전용

포인터 입력의 압력을 0부터 1까지의 범위로 정규화한 값입니다. 01은 각각 포인터 하드웨어가 감지할 수 있는 최소와 최대 압력을 나타냅니다.

PointerEvent.tangentialPressure 읽기 전용

포인터 입력의 접선 압력(tangential pressure, barrel pressure 또는 cylinder stress)을 -1부터 1까지의 범위로 정규화한 값입니다. 0이 컨트롤의 정위치를 나타냅니다.

PointerEvent.tiltX 읽기 전용

포인터(펜 스타일러스 등)의 주축과 Y축이 이루는 평면과 Y-Z 평면 사이의 각입니다. -90도부터 90도의 범위를 가집니다.

PointerEvent.tiltY 읽기 전용

포인터(펜 스타일러스 등)의 주축과 X축이 이루는 평면과 X-Z 평면 사이의 각입니다. -90도부터 90도의 범위를 가집니다.

PointerEvent.twist 읽기 전용

포인터(펜 스타일러스 등)의 주축 기준 시계 방향 회전입니다. 0도부터 359도의 범위를 가집니다.

PointerEvent.pointerType 읽기 전용

이벤트를 유발한 장치 유형(마우스, 펜, 터치 등)을 나타냅니다.

PointerEvent.isPrimary 읽기 전용

이 포인터가 해당 장치 유형에서의 주 포인터인지 나타냅니다.

인스턴스 메서드

PointerEvent.getCoalescedEvents()

발송된 pointermove에 병합된 모든 PointerEvent 인스턴스들의 시퀀스를 반환합니다.

PointerEvent.getPredictedEvents()

발송된 pointermove에 병합된 이벤트들에 기반해 브라우저가 예측한 다음 PointerEvent 인스턴스들의 시퀀스를 반환합니다.

포인터 이벤트 유형

PointerEvent 인터페이스에는 여러 이벤트 유형이 있습니다. 어떤 유형인지는 이벤트의 type 속성으로 알 수 있습니다.

참고: 대부분의 경우, 비 포인터 이벤트 코드도 사용자와 상호작용할 수 있도록 포인터와 마우스 이벤트가 같이 발생한다는 점을 기억해야 합니다. 포인터 이벤트를 사용할 경우, event.preventDefault()로 마우스 이벤트의 발생을 막으세요.

pointerover

포인터가 요소의 적중 테스트 경계 내로 들어오면 발생합니다.

pointerenter

포인터가 요소 또는 요소 자손의 적중 테스트 경계 내로 들어오면 발생합니다. 호버를 지원하지 않는 장치(pointerdown을 참고하세요)에서의 pointerdown 이벤트 결과로도 발생합니다. pointerover와 유사하지만 이 이벤트는 버블링하지 않습니다.

pointerdown

포인터가 "활성" 상태가 되면 발생합니다. 마우스에 있어서 활성은 장치의 버튼이 아무것도 눌리지 않은 상태에서 적어도 한 개의 버튼이 눌린 상태로 전환될 때입니다. 터치에서는 디지타이저와 물리적 접촉을 할 때고, 펜에서는 스타일러스가 디지타이저와 물리적 접촉을 할 때입니다.

참고: 직접 조작을 지원하는 터치 화면 브라우저에서는 pointerdown 이벤트가 암시적인 포인터 포획을 유발하여 이후 발생하는 모든 포인터 이벤트가 대상에게 포획됩니다. 포획된 이벤트들은 포획 대상의 위에서 발생하는 것처럼 취급합니다. 따라서 포획 중에는 pointerover, pointerenter, pointerleave, pointerout발생하지 않습니다. 포인터 포획은 대상 요소의 element.releasePointerCapture를 직접 호출해서 해제할 수도 있고, pointerup이나 pointercancel 이벤트가 발생하면 암시적으로 해제됩니다.

pointermove

포인터가 좌표를 바꾸면 발생합니다.

pointerrawupdate Experimental

포인터의 속성이 바뀌면 발생합니다.

pointerup

포인터가 더 이상 "활성" 상태가 아니면 발생합니다.

pointercancel

장치가 비활성화되는 등, 포인터가 더는 이벤트를 생성할 수 없다고 여겨지면 브라우저가 이 이벤트를 발송합니다.

pointerout

포인터 장치가 요소의 적중 테스트 경계 밖으로 나갔거나, 호버를 지원하지 않는 장치(pointerup을 참고하세요)에서 pointerup 이벤트가 발생했거나, pointercancel 이벤트가 발생했거나(pointercancel을 참고하세요), 펜 스타일러스가 디지타이저의 감지 범위 밖으로 나가는 등 여러 이유로 발생합니다.

pointerleave

포인터 장치가 요소의 적중 테스트 경계 밖으로 나가면 발생합니다. 펜형 장치에서는 스타일러스가 디지타이저의 감지 범위 밖으로 나갈 때도 발생합니다.

gotpointercapture

요소가 포인터 포획 대상이 되면 발생합니다.

lostpointercapture

포인터에 대한 포획이 해제되면 발생합니다.

예제

각 속성, 이벤트 유형, 전역 이벤트 처리기의 참고서 페이지에서 예제를 확인할 수 있습니다.

명세서

Specification
Pointer Events
# pointerevent-interface

브라우저 호환성

BCD tables only load in the browser

같이 보기