2026年7月
IntersectionObserverメモ
スクロール連動のUIを作るとき、処理は短くても意図は意外と散らばる。
まずは「監視対象」「しきい値」「コールバックの責務」を分けてメモしておくと、後で読み返した時に速い。
💡 IntersectionObserverEntryについて
IntersectionObserverEntry は監視対象の現在状態をまとめたデータです。交差しているか、どのくらい見えているかをコールバックで受け取れます。
「entries で渡される状態のスナップショット」と覚えると実装時に迷いづらくなります。
実装時の分割
監視開始と描画更新を同じ関数に寄せると、分岐が増えた時に読みづらくなる。
observer の管理関数と、表示状態を更新する関数を分けるのがおすすめ。
const observer = new IntersectionObserver((entries) => {
for (const entry of entries) {
entry.target.classList.toggle('is-visible', entry.isIntersecting);
}
}, { threshold: 0.35 });
🧭 小さな運用ルール
初期表示で必ず見える要素には observer を使わず、静的にクラスを付ける。監視対象は「後から見える要素」に限定するとパフォーマンスの予測が楽です。
⚠️ よくある落とし穴
しきい値を細かく刻みすぎると、不要なコールバックが増えます。まずは 0, 0.35, 1 のように粗く始めるほうが安定します。