コンテンツへスキップ
Fumadocs

目次

目次

アクティブなアンカーの監視と自動スクロールに対応した目次です。

使い方

import * as Base from 'fumadocs-core/toc';

return (
  <Base.AnchorProvider>
    <Base.ScrollProvider>
      <Base.TOCItem />
      <Base.TOCItem />
    </Base.ScrollProvider>
  </Base.AnchorProvider>
);

Anchor Provider

Intersection Observer API を使用して、アクティブなアンカーを監視します。

プロパティ

型

Scroll Provider

アクティブなアンカーの位置までスクロールコンテナをスクロールします。

プロパティ

型

目次アイテム

対象のアンカーへジャンプするためのアンカーアイテムです。

データ属性値説明
data-activetrue, falseアンカーがアクティブかどうか

例

import { AnchorProvider, ScrollProvider, TOCItem, type TOCItemType } from 'fumadocs-core/toc';
import { type ReactNode, useRef } from 'react';

export function Page({ items, children }: { items: TOCItemType[]; children: ReactNode }) {
  const viewRef = useRef<HTMLDivElement>(null);

  return (
    <AnchorProvider toc={items}>
      <div ref={viewRef} className="overflow-auto">
        <ScrollProvider containerRef={viewRef}>
          {items.map((item) => (
            <TOCItem key={item.url} href={item.url}>
              {item.title}
            </TOCItem>
          ))}
        </ScrollProvider>
      </div>
      {children}
    </AnchorProvider>
  );
}

How is this guide?

最終更新日