Intersection Observer API を使った簡単なパララックスの実装方法
概要
パララックスと呼ばれる視覚効果をご存知でしょうか?スクロールに応じて要素がスクロールとは少し違う動き(左右だったり上下逆だったり、速度が違ったり)をして印象的にする効果です。遅延読込させた画像のロード時の効果として使われる場合もあり、採用しているサイトは多いです。しかし、従来はscrollイベントかタイマーで要素を監視して必要になったら動作させるものが主流でした。scrollイベントは非常に短い間隔で発火され、位置を把握するgetBoundingClientRect()関数による強制レンダリングにより往々にして処理が重くなりがちでユーザ体験を悪化させる一因になりかねないものです。そんな悩みの種を解消する方法にIntersectionObserverAPIが提供されました。このAPIを利用すると従来の高負荷な処理が無くなり、必要なタイミングでのみ処理を行えば良く、非常に効率的になります。