DOM

Document:gotpointercapture イベント

 編集:2022.10.11 by T.A.

[Edge]。→

要素が Element.setPointerCapture() を使用してポインターをキャプチャしたときに発行されます。

バブリング なし
キャンセル 不可
インターフェイス PointerEvent
イベント ハンドラー プロパティ ongotpointercapture
mdnより

この例は <p> 要素を取得し、gotpointercapture イベントを待ち受けします。setPointerCapture() を pointerdown イベントの要素上で呼び出し、gotpointercapture を発生させます。

const para = document.querySelector('p');

document.addEventListener('gotpointercapture', () => {
  console.log('I\'ve been captured!')
});

para.addEventListener('pointerdown', (event) => {
  para.setPointerCapture(event.pointerId);
});

同じ例:

const para = document.querySelector('p');

document.ongotpointercapture = () => {
  console.log('I\'ve been captured!')
};

para.addEventListener('pointerdown', (event) => {
  para.setPointerCapture(event.pointerId);
});
gotpointercapture、lostpointercapture イベント

HTML:

<SPAN id=IdTest>[SPAN要素。ポインター操作を…]</SPAN><BR>
<SPAN id=IdLog></SPAN>

JavaScript:

function JobPD(eve){ //pointerdown イベントの処理:
  IdTest.setPointerCapture(eve.pointerId)
  IdLog.innerHTML=IdLog.innerHTML +"●";
}
function JobPU(eve){ //pointerup イベントの処理:
  IdTest.releasePointerCapture(eve.pointerId)
  IdLog.innerHTML=IdLog.innerHTML +"○";
}
function JobGot(eve){ //gotpointercapture イベントの処理:
  D=eve; //=[object]:[object PointerEvent]。SPAN要素上でマウス ボタンを押した。
詳細 //isTrusted=[boolean]:true //pointerId=[number]:1 //width=[number]:1 //height=[number]:1 //pressure=[number]:0.5 //tiltX=[number]:0 //tiltY=[number]:0 //azimuthAngle=[number]:0 //altitudeAngle=[number]:1.5707963267948966 //tangentialPressure=[number]:0 //twist=[number]:0 //pointerType=[string]:mouse //isPrimary=[boolean]:true //getCoalescedEvents=[function]:function getCoalescedEvents() { [native code] } //getPredictedEvents=[function]:function getPredictedEvents() { [native code] } //screenX=[number]:402 //screenY=[number]:343 //clientX=[number]:195.5625 //clientY=[number]:268 //ctrlKey=[boolean]:false //shiftKey=[boolean]:false //altKey=[boolean]:false //metaKey=[boolean]:false //button=[number]:-1 //buttons=[number]:1 //relatedTarget=[object]:null //pageX=[number]:195.5625 //pageY=[number]:1430 //x=[number]:195.5625 //y=[number]:268 //offsetX=[number]:176.671875 //offsetY=[number]:238.796875 //movementX=[number]:0 //movementY=[number]:0 //fromElement=[object]:null //toElement=[object]:null //layerX=[number]:195 //layerY=[number]:1430 //getModifierState=[function]:function getModifierState() { [native code] } //initMouseEvent=[function]:function initMouseEvent() { [native code] } //view=[object]:[object Window] //detail=[number]:0 //sourceCapabilities=[object]:null //which=[number]:0 //initUIEvent=[function]:function initUIEvent() { [native code] } //type=[string]:gotpointercapture //target=[object]:[object HTMLSpanElement] //currentTarget=[object]:null //eventPhase=[number]:0 //bubbles=[boolean]:true //cancelable=[boolean]:false //defaultPrevented=[boolean]:false //composed=[boolean]:true //…
IdLog.innerHTML=IdLog.innerHTML +"★"; } function JobLost(eve){ //lostpointercapture イベントの処理: DA=eve; //=[object]:[object PointerEvent]。SPAN要素上でマウス ボタンを放した。
詳細 //isTrusted=[boolean]:true //pointerId=[number]:1 //width=[number]:1 //height=[number]:1 //pressure=[number]:0 //tiltX=[number]:0 //tiltY=[number]:0 //azimuthAngle=[number]:0 //altitudeAngle=[number]:1.5707963267948966 //tangentialPressure=[number]:0 //twist=[number]:0 //pointerType=[string]:mouse //isPrimary=[boolean]:true //getCoalescedEvents=[function]:function getCoalescedEvents() { [native code] } //getPredictedEvents=[function]:function getPredictedEvents() { [native code] } //screenX=[number]:402 //screenY=[number]:343 //clientX=[number]:195.5625 //clientY=[number]:268 //ctrlKey=[boolean]:false //shiftKey=[boolean]:false //altKey=[boolean]:false //metaKey=[boolean]:false //button=[number]:0 //buttons=[number]:0 //relatedTarget=[object]:null //pageX=[number]:195.5625 //pageY=[number]:1430 //x=[number]:195.5625 //y=[number]:268 //offsetX=[number]:176.671875 //offsetY=[number]:238.796875 //movementX=[number]:0 //movementY=[number]:0 //fromElement=[object]:null //toElement=[object]:null //layerX=[number]:195 //layerY=[number]:1430 //getModifierState=[function]:function getModifierState() { [native code] } //initMouseEvent=[function]:function initMouseEvent() { [native code] } //view=[object]:[object Window] //detail=[number]:0 //sourceCapabilities=[object]:null //which=[number]:1 //initUIEvent=[function]:function initUIEvent() { [native code] } //type=[string]:lostpointercapture //target=[object]:[object HTMLSpanElement] //currentTarget=[object]:null //eventPhase=[number]:0 //bubbles=[boolean]:true //cancelable=[boolean]:false //defaultPrevented=[boolean]:false //composed=[boolean]:true //…
IdLog.innerHTML=IdLog.innerHTML +"☆"; } IdTest.onpointerdown=JobPD; IdTest.onpointerup=JobPU; document.ongotpointercapture=JobGot; document.onlostpointercapture=JobLost;

HTMLElement:pointerdownHTMLElement:pointerupElement.setPointerCapture()Element.innerHTML


テスト