PointerEvent: isPrimary プロパティ

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.

isPrimaryPointerEvent インターフェイスの読み取り専用プロパティで、イベントを生成したポインター機器がポインターであるかどうかを示します。 イベントの発生原因となったポインターが主機器である場合は true を返し、それ以外の場合は false を返します。

マルチポインターのシナリオ(複数のタッチ点に対応するタッチ画面など)では、このプロパティを使用して、各種類のアクティブなポインターの集合からマスターポインターを識別します。 主ポインターのみが互換マウスイベントを生成します。 単一のポインターによる操作のみを希望する場合は、主ポインターではないものを無視することによって実現することができます。

ポインターがマウスを表している場合、そのポインターが主と見なされます。 ペン入力を表すポインターは、その pointerdown イベントが、ペン入力を表す他のアクティブなポインターがないときに送出された場合、主ペン入力と見なされます。タッチ入力を表すポインターは、その pointerdown イベントが、タッチ入力を表す他のアクティブなポインターが存在しないときに送出された場合、主タッチ入力と見なされます。

2 種類以上のポインター機器が同時に使用されている場合、複数のポインター(pointerType ごとに 1 つ)が主と見なされます。 例えば、タッチ接触とマウスカーソルが同時に動かされると、両方とも主と見なされるポインターが生成されます。 複数の主ポインターがある場合、これらのポインターはすべて互換マウスイベントを生成します(ポインター、マウス、およびタッチの相互作用の詳細については、ポインターイベントを参照)。

論理値で、このイベントのポインターが主ポインターである場合は true を返し、そうでない場合は false を返します。

この例は、isPrimary の値を使用して、適切な処理関数を呼び出す方法を示しています。

js
target.addEventListener(
  "pointerdown",
  (event) => {
    if (event.isPrimary) {
      process_primary_pointer(event);
    } else {
      process_secondary_pointer(event);
    }
  },
  false,
);

仕様書

Specification
Pointer Events
# dom-pointerevent-isprimary

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
isPrimary

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support