Intersection Observer APIを使った固定ヘッダー3パターン

JavaScript PROGRAMMING
Intersection Observer APIを使った固定ヘッダー3パターン

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

Intersection Observer APIを使った固定ヘッダーを3パターン作ったのでご紹介します。

今までは「ある要素までスクロールしたらヘッダーを固定する」という処理を、scrollイベントを使って実装していましたが、スクロールのたびにスクロール量が計算されるので処理が重くなっていました。

Intersection Observer APIは「ある要素が表示画面内にあるかどうか」で処理を行うことができるので、スクロール量に依存せず、今までと同じ実装ができます。

しかも書き方も簡単なのでおすすめです!

今回はファーストビューが画面外にいったらヘッダーに処理を加えています。

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

Intersection Observer APIを使った固定ヘッダー3パターン

1 一番上に固定

ファーストビューをすぎるとヘッダーが一番上に固定されます。よく見るシンプルな実装です。

See the Pen
固定ヘッダー(途中から固定)
by つるみなおや (@trmnaoya)
on CodePen.

2 背景色とサイズを変更

ファーストビューをすぎるとヘッダーの背景色とサイズを変更しています。ファーストビューではヘッダーも大きく目立たせ、コンテンツ部分ではヘッダーを小さくすることでコンテンツが見やすくなります。

See the Pen
固定ヘッダー(途中から色とサイズ変える)
by つるみなおや (@trmnaoya)
on CodePen.

3 ヘッダーを変更しつつ固定

ファーストビューをすぎたときにヘッダーを違うものに変更しつつ一番上に固定しています。(今回は背景色しか変えていませんが,,,)背景色、文字色、サイズなどを変えることで、コンテンツ部分ではまた違ったサイトの見え方になると思います。

See the Pen
固定ヘッダー(途中でヘッダー入れ替え)
by つるみなおや (@trmnaoya)
on CodePen.

以上3パターンご紹介しました。

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

参考になれば幸いです。

\シェアしてね!/