生成文章目录

生成文章目录

生成文章目录

思路

基于文章的标题生成目录,换句话说,就是将 h1,h2,h3 等标签的 dom 层次转化为树形结构。

实现

首先要准备数据。

const list = [];

要实现类似如下的结构

[
  {
    title: "标题",
    href: "",
    children: [
      {
        title: "标题",
        href: "",
      },
    ],
  },
];

要生成目录结构,首先要获取文章的 dom 结构,现将标签放入数组。然后对齐进行筛选清晰,之留下我们需要的标题元素,即 h1,h2,h3 等标签,筛选完后放入另一个数组。

之后对数组进行遍历,提取我们需要的属性,以便对树形数据进行赋值,然后调用Array.push()将对象添加进数组内。

将文章目录与文章关联

设置滚动

监听页面滚动,计算页面的相对位置,来使目录滚动。

设置目录跳转文章对应位置

可以使用锚点法,为文章的标题添加 id,再在目录的连接中添加#开头的标题 id

这样一来,点击目录是,页面就会滚动到指定位置。

生成文章目录
https://pic.imgdb.cn/item/64a3ac0f1ddac507ccac32ea.webp
作者
Firefly
发布于
2026-04-03
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Firefly
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
暂无封面

音乐

暂未播放

0:000:00
暂无歌词
暂无歌曲
分类
标签
站点统计
文章
21
分类
3
标签
13
总字数
57,102
运行时长
601
最后活动
143 天前

目录