yaohaixiao / outline.js

outline.js - 自动生成文章导读(Table of Contents)导航的 JavaScript 工具。会自动分析文章中的标题( h1~h6 )标签,并生成文章段落层次结构的导读导航菜单。
https://yaohaixiao.github.io/outline.js/
MIT License
129 stars 16 forks source link

你好,这里有两个问题需要咨询一下 #33

Closed whitebearcode closed 1 year ago

whitebearcode commented 1 year ago

首先感谢提供如此方便的插件,点个赞~ 这里有两个问题想咨询一下 1、在不直接修改代码的情况下,有没有内置方法可以添加右侧独立菜单栏的按钮,并可添加点击该按钮的方法呢 2、当文章没有h1-h6标签时右侧底部菜单栏是没有导航目录图标的,但跳转到顶部和底部的按钮还是存在的,但js中似乎有判断当没有h1-h6标签时其他按钮的点击事件失效,有办法在没有h1-h6标签的情况下让跳转顶部/底部按钮仍旧可用吗。

第二个可能有点啰嗦,简单点说就是没有h1-h6标签时跳转顶部和底部按钮点击不了,这个不知道是否有配置项。

yaohaixiao commented 1 year ago

感谢您的反馈!

问题1:没有hx标签上下滚动按钮点击没有反应是BUG,我已经修复; 问题2:toolbar 的按钮是可以手动添加的,只是添加功能是在子组件 outline.toolbar 中封装的,Outline 对象还没有添加按钮的直接接口,稍后我会添加上; 目前只能通过 outline.toolbar.add() 方法添加具体用法请先查看 toolbar 的代码中的 add() 方法: https://github.com/yaohaixiao/outline.js/blob/master/src/toolbar.js 不过目前的问题是内置的自定义图标还很少,我还需要调整一下

whitebearcode commented 1 year ago

感谢解答

whitebearcode commented 1 year ago

还有一个问题就是这个向上或向下,得手动点一下才会判断到达顶部/底部并隐藏向上或向下按钮,不知道有没有自动判断在顶部或底部的逻辑 以及离顶部/底部多高时显示向上或向下按钮

yaohaixiao commented 1 year ago

添加了自定义按钮的配置 tools 和 addButton() 和 removeButton() 方法

上下按钮的控制是根据滚动距离判断的:

onToolbarUpdate({ top, min, max }) {
    const toolbar = this.toolbar
    const current = Math.ceil(top)

    if (current <= min) {
      toolbar.hide('up')
      toolbar.show('down')
    } else if (current >= max) {
      toolbar.hide('down')
      toolbar.show('up')
    } else if (current > min && current < max) {
      toolbar.show('up')
      toolbar.show('down')
    }

    return this
  }

const top = offsetTop($heading) - (stickyHeight + 10)
const min = 0
const max = this.$scrollElement.scrollHeight