コンポーネント
← すべてのコンポーネント

ビューポート交差

stimeo--intersection

IntersectionObserver を宣言的に扱い、可視状態をイベントと CSS フックへ変換する基盤プリミティブ。

  • Core

stimeo--intersection は IntersectionObserver の薄い宣言的ラッパで、無限スクロール・カウントアップ・読了プログレス・スマート追従ヘッダなど「スクロール起動」の UI が合成の土台にするプリミティブです。自要素を監視し、可視状態を遷移として届けます。可視になれば enter(交差率が threshold に到達)、去れば exit(去った方向つき)、 root の始端を完全に通過すれば passed(両方向)、そして観測のたびに change (ratioSteps を上げると交差率が滑らかに流れます)。状態は CSS 向けにも反映されます — data-intersecting・data-passed・カスタムプロパティ --stimeo--intersection-ratio。このデモの見た目はすべてそのフックだけで作られており、消費側 JS はありません。 refresh アクションは現在の状態を新しい遷移として再配信し、「番兵が見えたまま」で止まる自作無限スクロールのストールを解消します。once を使うと初回 enter で監視を停止します(遅延ロード・一度きりのアニメ向け)。connect() は冪等で、Turbo のキャッシュ復元では記録済みの可視状態に enter を再発火しません。

実行中

枠の中をスクロールしてください。ボックスは自分の可視状態に CSS フックだけで反応します — 枠線とラベルは data-intersecting / data-passed、バーは交差率カスタムプロパティ由来です。

下へスクロール…

見えています まだ見えていません 通過しました

…そして上へ戻る。