Touch: radiusX プロパティ

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

radiusXTouch インターフェイスの読み取り専用プロパティで、タッチ面の連絡先を最も近く囲む楕円の X 半径を返します。値は Touch.screenX と同じ倍率の CSS のピクセル値です。

この値と Touch.radiusY および Touch.rotationAngle の組み合わせにより、ユーザーと画面の接触領域のサイズと図形を近似した楕円が構成されます。これは、例えば、指先と画面の間の接触を表す比較的大きな楕円であったり、スタイラスの先端を表す小さな領域であったりします。

数値です。

この例では、 Touch インターフェイスの Touch.radiusXTouch.radiusXTouch.rotationAngle プロパティを使用する例を示します。 Touch.radiusX プロパティは、タッチ領域(指やスタイラスなど)を最も近く囲む楕円の、タッチ点の Touch.rotationAngle示す軸上の半径です。同様に Touch.radiusY プロパティは、タッチ領域(指やスタイラスなど)を最も近く囲む楕円の、 Touch.rotationAngle で示される線に直交する軸の半径です。 Touch.rotationAngle は、 radiusXradiusY で記述されている楕円を、その中心に対して時計回りに回転させたときの角度(度)です。

以下の単純なコードでは、 touchstarttouchmovetouchend イベントに対して単一のハンドラーを登録しています。 src 要素がタッチされると、タッチ点の radiusXradiusY の値に基づいて要素の幅と高さが計算され、タッチ点の rotationAngle を使用して要素が回転します。

html
<div id="src"></div>
js
const src = document.getElementById("src");

src.addEventListener("touchstart", rotate);
src.addEventListener("touchmove", rotate);
src.addEventListener("touchend", rotate);

function rotate(e) {
  const touch = e.changedTouches.item(0);

  // 既定のイベント処理を無効にする
  e.preventDefault();

  // 'src' 要素を回転する
  src.style.width = `${touch.radiusX * 2}px`;
  src.style.height = `${touch.radiusY * 2}px`;
  src.style.transform = `rotate(${touch.rotationAngle}deg)`;
}

仕様書

Specification
Touch Events
# dom-touch-radiusx

ブラウザーの互換性

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
radiusX

Legend

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

Full support
Full support
Partial support
Partial support
No support
No support
Requires a vendor prefix or different name for use.
Has more compatibility info.