Skip to content

标题列表

在线演示:标题列表

安装

bash
npm install quill-header-list

使用

js
import FluentEditor from '@opentiny/fluent-editor'
import HeaderList from 'quill-header-list'
import 'quill-header-list/dist/index.css'

FluentEditor.register({ 'modules/header-list': HeaderList }, true)

new FluentEditor('#editor', {
  theme: 'snow',
  modules: {
    'toolbar': {
      container: [[{ header: [null, 1, 2, 3, 4, 5, 6] }, 'header-list']],
      handlers: {
        'header-list': HeaderList.toolbarHandle,
      },
    },
    'header-list': {
      container: document.getElementById('directory'), // 指定一个元素来接收头部列表
    },
  },
})

Options 配置

名称类型描述默认值是否必选
containerstring | HTMLElement列表容器,字符串必须是元素的id-true
scrollContainerstring | HTMLElement编辑器滚动容器,默认是 quill.root-false
hideClassnumber列表隐藏时的类名is-hiddenfalse
topOffsetnumber | () => number从顶部的偏移量(单位为 px0false
headerHeightnumber编辑器中的头部高度,这是用于计算头部滚动高亮的,不要使h1和h6之间的高度差过大36false
onBeforeShow() => boolean在显示前触发,返回 true 将取消显示-false
onBeforeHide() => boolean在隐藏前触发,返回 true 将取消隐藏-false
onItemClick(id: string) => void点击列表项时触发,id是头部元素的id-false

其他

如果你的页面中有一个固定元素,你可以使用topOffset来返回该固定元素的高度,这样头部列表项的滚动位置就不会被固定元素遮盖。

js
new FluentEditor('#editor', {
  theme: 'snow',
  modules: {
    'toolbar': [[{ header: [null, 1, 2, 3, 4, 5, 6] }, 'header-list']],
    'header-list': {
      container: document.getElementById('directory'), // 指定一个元素来接收头部列表
      topOffset: () => {
        // 获取固定元素的高度
        const navOffset = document.querySelector('.fixed')?.getBoundingClientRect().height || 0
        return navOffset
      },
      // 或者如果你已经知道高度
      // topOffset: 36,
    },
  },
})

想了解更多 quill-header-list 模块的使用说明,请参考:https://github.com/opentiny/quill-header-list

Made with ❤ by