はじめに / 仕組み

仕組み

intent-link はページ内でのユーザーの動きを観測し、どの表示中のターゲットに近づいているかを推定します。信号が十分に強くなると、そのターゲットの onIntent 関数を呼び出します。

1 · 動きを観測

デスクトップではポインターの動きを読み取ります。タッチ端末ではスクロールを読み取ります。ユーザーが操作したときだけ起動し、動きが止まると再び休止します。

2 · ターゲットを推定

エンジンはユーザーの動きと表示中のインテントターゲットを比較します。ビューポート外のターゲットは計算から除外されます。

3 · 処理を実行

あるターゲットの可能性が十分に高くなると、その onIntent コールバックが一度実行されます。ユーザーが離れ、後でもう一度近づけば再実行できます。

デスクトップとモバイル

  • デスクトップでは、ポインターの2次元の動きを追跡します。
  • モバイルでは、縦方向のスクロールを追跡します。最初のスクロールで有効になります。
  • レスポンシブ CSS で非表示になったものを含め、非表示または画面外のターゲットは無視されます。

物理学の考え方

各ターゲットを小さな重力のくぼみとして考えてみてください。動きは 運動エネルギー を生み、ターゲットまでの距離は 位置エネルギー を生みます。速いポインターやスクロールにはまだ動きが残っていますが、ターゲット近くの遅い動きはそこに落ち着きつつあるように見えます。エンジンは熱力学に似た規則を使い、こうした低エネルギーの行き先をより可能性が高いものとして扱います。

ブラウザーの移動データには小さな飛びや誤差があります。カルマンフィルター は物理計算の前にそのノイズを滑らかにします。簡単に言えば、意図した動きと不安定な測定値を区別しやすくします。これはすべてライブラリ内部で行われ、アプリが受け取るのは onIntent だけです。

研究論文を読む。ACM で公開されるまで、このリンクは仮のものです。