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

ブラウザーの互換性

BCD tables only load in the browser