サイドバーに配置した「目次」ウィジェットをハイライト表示させる方法

Cocoonカスタマイズ集
この記事は約11分で読めます。
記事内に広告が含まれています。

記事に記載したコードは、スキンに追加されています。

参考:CSSのみで目次ハイライトを実装する方法

CSSのscroll-target-groupによってスクロール位置と連動する要素のグループ化を行い、:target-currentなどの疑似クラスを用いてユーザーが今どこを読んでいるかを判定しています。

ただし、全てのブラウザに対応しているわけではありません(対応状況は以下を参照)。

実装手順

以下のコードをstyle.cssに追加します。

.sidebar-scroll .toc .toc-list {
  scroll-target-group: auto;

  a:target-current {
    color: #ff0000;
  }
}

さいごに

今回紹介した方法を使えば、目次の現在位置をハイライト表示することができ、読者がどのセクションを読んでいるのかを直感的に把握できるようになります。
scrollとIntersectionObserverの2つの方法を紹介しましたが、それぞれのメリットとデメリットを理解し、サイトのパフォーマンスに応じて最適な方法を選んで実装しましょう。

タイトルとURLをコピーしました