← 返回首页
技术 2026年5月24日 · 1 分钟阅读 · 大可

平滑滚动与自动生成文章目录

给长文加 TOC 侧边栏,点击平滑跳转并高亮当前章节。


技术长文没有目录很难读。给 B2 文章页加一个自动 TOC,体验立刻专业。

平滑滚动

html { scroll-behavior: smooth; }
/* 给锚点留吸顶导航的余量 */
:target { scroll-margin-top: 80px; }

生成目录

文章渲染后,用 JS 抓取所有 h2/h3 生成列表:

const heads = [...document.querySelectorAll('article h2, article h3')];
const toc = heads.map((h) => {
  h.id = h.id || h.textContent.trim();
  return `<a href="#${h.id}">${h.textContent}</a>`;
}).join('');
document.querySelector('#toc').innerHTML = toc;

高亮当前章节

配合 IntersectionObserver 监听标题进入视口,给对应目录项加 active 类即可。注意锚点要设 scroll-margin-top,否则被吸顶导航挡住。

#JS#TOC#交互