Element:pointercancel 事件

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2020 年 7 月以來,它已在各大瀏覽器中可用。

當瀏覽器確定不太可能再有更多的指標事件發生,或者在 pointerdown 事件觸發後,指標被用於透過平移、縮放或滾動來操作視口時,會觸發 pointercancel 事件。

一些會觸發 pointercancel 事件的情況示例:

  • 發生取消指標活動的硬體事件。例如,使用者透過應用程式切換介面或移動裝置上的“主頁”按鈕切換應用程式。
  • 當指標活動時,裝置螢幕方向發生改變。
  • 瀏覽器判定使用者意外啟動了指標輸入。例如,如果硬體支援手掌誤觸消除,以防止在使用手寫筆時將手放在顯示屏上意外觸發事件。
  • touch-action CSS 屬性阻止輸入繼續。
  • 當用戶同時使用過多的指標進行互動時,瀏覽器可能會為所有現有指標觸發此事件(即使使用者仍然觸控式螢幕幕)。

注意:pointercancel 事件觸發後,瀏覽器還會發送 pointerout,然後是 pointerleave

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("pointercancel", (event) => { })

onpointercancel = (event) => { }

事件型別

一個 PointerEvent。繼承自 Event

Event UIEvent MouseEvent PointerEvent

事件屬性

此介面繼承自 MouseEventEvent 的屬性。

PointerEvent.altitudeAngle 只讀 實驗性

表示感測器(指標或手寫筆)軸與裝置螢幕的 X-Y 平面之間的角度。

PointerEvent.azimuthAngle 只讀 實驗性

表示 Y-Z 平面與包含感測器(指標或手寫筆)軸和 Y 軸的平面之間的角度。

PointerEvent.persistentDeviceId 只讀 實驗性

生成 PointerEvent 的指向裝置的唯一識別符號。

PointerEvent.pointerId 只讀

導致事件的指標的唯一識別符號。

PointerEvent.width 只讀

指標接觸幾何的寬度(X 軸上的大小),以 CSS 畫素為單位。

PointerEvent.height 只讀

指標接觸幾何的高度(Y 軸上的大小),單位為 CSS 畫素。

PointerEvent.pressure 只讀

指標輸入在 01 範圍內的歸一化壓力,其中 01 分別表示硬體能夠檢測到的最小和最大壓力。

PointerEvent.tangentialPressure 只讀

指標輸入(也稱為筒壓或圓柱應力)在 -11 範圍內的歸一化切向壓力,其中 0 是控制的中間位置。

PointerEvent.tiltX 只讀

Y-Z 平面與包含指標(例如筆手寫筆)軸和 Y 軸的平面之間的平面角(以度為單位,範圍為 -9090)。

PointerEvent.tiltY 只讀

X–Z 平面與包含指標(例如,筆尖)軸和 X 軸的平面之間的平面角度(以度為單位,範圍為 -9090)。

PointerEvent.twist 只讀

指標(例如筆手寫筆)圍繞其主軸的順時針旋轉角度,以度為單位,值為 0359

PointerEvent.pointerType 只讀

指示導致事件的裝置型別(滑鼠、筆、觸控等)。

PointerEvent.isPrimary 只讀

指示此指標是否表示此指標型別的主要指標。

示例

使用 addEventListener()

js
const para = document.querySelector("p");

para.addEventListener("pointercancel", (event) => {
  console.log("Pointer event cancelled");
});

使用 onpointercancel 事件處理程式屬性

js
const para = document.querySelector("p");

para.onpointercancel = (event) => {
  console.log("Pointer event cancelled");
};

規範

規範
指標事件
# the-pointercancel-event
指標事件
# dom-globaleventhandlers-onpointercancel

瀏覽器相容性

另見