やってみよう記事をスクロールして、上の目次の色が移っていく様子を見てください。目次を押すとその場所へ飛びます
ナビゲーションマイナー(知る人ぞ知る)
スクロールスパイ
Scroll Spy / Active Table of Contents
記事をスクロールすると、目次のうち「今読んでいる見出し」に色が付いていく。
別名目次ハイライト現在地ハイライトアクティブ目次追従目次
どこで使われている?
- よく見かける場所
- 技術ドキュメント、Wikipedia、長い説明ページ
- 使うとよい場面
- 目次がある長いページで、今どこを読んでいるかを示したいとき
- 避けたい場面
- 短いページ、スマホの狭い画面で目次が大きく場所を取るとき
AIへの指示文
これをコピーしてAIに貼り付ければOKです。Webサイトを作る前提の内容です(右上の「何を作る?」で変えられます)。
HTML / CSS / JavaScript で「スクロールスパイ(Scroll Spy / Active Table of Contents)」を実装してください。 動き:記事の目次を上部(またはサイド)に固定表示し、スクロールして画面に入っている見出しに合わせて、目次の該当項目を強調する。目次の項目を押すと、その見出しまでなめらかにスクロールする。 使う部品:IntersectionObserver で見出しを監視
もっと詳しく:プログラムでの部品名
同じ動きでも、作るものによってプログラムの中での部品の名前が違います。上の指示文にはすでに入っているので、覚える必要はありません。AIの説明に出てきた単語を確認したいときに使ってください。
| Webサイトなら | IntersectionObserver で見出しを監視 |
|---|---|
| iPhoneアプリなら | ScrollViewReader + 見出しの表示位置を監視して自作 |
| Androidアプリなら | LazyListState.firstVisibleItemIndex を見て自作 |
| Flutterなら | scrollable_positioned_list パッケージ |
| React Nativeなら | FlatList の onViewableItemsChanged |