Intersection Observer APIを使ってフッター手前でスクロールトップボタンを固定する

JavaScript PROGRAMMING
Intersection Observer APIを使ってフッター手前でスクロールトップボタンを固定する

こんにちは、つるみなおや(@tsuruchan_web)です。

Intersection Observer APIを使ってフッター手前でスクロールトップボタンを固定するコードを作ったのでご紹介します。

今までは「ページ全体の高さを計算して〜、フッターの高さを計算して〜、そこまでのスクロール量を計算して〜」と、かなり多くの処理を記述していましたが、Intersection Observer APIを使うことで、もっと簡単に記述できるようになります。

さらにIntersection Observer APIは「ある要素が表示画面内にあるかどうか」で処理を行うことができるので、スクロール量に依存せず、処理が軽くなります。

今回は「フッターの20px手前の地点が画面内に入ったら、そこでスクロールトップボタンを固定する」という実装です。

ついでに「ファーストビューが画面外にいったらスクロールトップボタンを画面右下に表示する」という処理も実装しています。

ボタンの色や大きさを調整するだけで、スクロールトップボタン関係の実装は今回のコードだけでオッケーだと思います!

コピペ可能なのでよかったら使ってみてください。

Intersection Observer APIを使ってフッター手前でスクロールトップボタンを固定する

スクロールトップボタンの表示・非表示」とスクロールトップボタンをフッター手前で固定する」の二つのインスタンスに分けて実装しています。

IntersectionObserverクラスのメンバ関数observeの引数に「フッターの20px手前の地点が画面内に入ったら」というオプションを加えています。

See the Pen
スクロールトップボタン(ファーストビューあり)
by つるみなおや (@trmnaoya)
on CodePen.

以上です。

Intersection Observer APIは使いやすいのでぜひ使ってみてください!

参考になれば幸いです。

\シェアしてね!/