如何做到大纲悬浮?

本贴最后更新于 339 天前,其中的信息可能已经渤澥桑田

每次都要在停靠栏上面点击大纲很麻烦而且不太直观,想要大纲导航能够悬浮悬浮在文档上,怎么做?

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26373 引用 • 109678 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 除了钉住侧栏以外,只能取消钉住侧栏。目前没有别的方式

  • linxi1

    +1,我也有类似的需求

  • coikno

    +1,我也有类似的需求

  • JeffreyChen 1 1 赞同

    @participants 有需求的话就描述一下需求是什么,画个图示都好

    1 回复
  • lunarcream

    image.png参考 Microsoft word

    1 回复
  • 这样悬浮目前还是做不到,最多就是鼠标移动到侧边栏然后悬浮出来

    2 回复
  • lunarcream

    像论坛的这种呢image.png

    1 回复
  • 这种就是固定在侧边的,思源差不多就是这种

    1 回复
  • lunarcream 1 赞同

    我总感觉差好多,思源的那个钉住会把编辑器缩起来,而且视觉上的感觉是占用了一大片位置,但是至少像论坛这样的悬浮(虽然不是窗口),会轻巧很多,而且向下滚动他是带有联动效果的

  • lunarcream

    现在取消钉住时指针停靠的时候不是会出现下面那种样式吗,把这种样式固定住,也就是说不需要停靠也能出现这种样式,不就能实现类似窗口的形式了吗(虽然不能移动,但我觉得比原来的好很多)image.png

  • MOU

    +1

  • wilsons 1

    这是我简单实现的效果,但不是真正的悬浮大纲

    image.png

    我是通过下面这两个插件配合 +css 模拟的

    第一个插件

    image.png

    第二个插件

    image.png

    怎么做?

    首先,用第一个插件在目标文档中插入大纲

    然后,用第二个插件把第一个插件插入的大纲设置悬浮

    image.png

    最后,css 代码片段加入以下样式

    /* 设置大纲样式 */ div[custom-block-position="sticky"] { position:absolute!important; top: 60px!important; right: 0!important; left: auto!important; background-color: var(--b3-theme-background); } /* 设置编辑器宽度,给大纲让出位置 */ .protyle-wysiwyg{ width:90%; }

    注意,这个样式需根据自己情况调整。

    缺点,这种方式只能针对某一个文档,不能通用,但如果样式调整好了,后期只需在需要的文档里插入大纲,设为悬浮就好了。

    ⚠️ 警告:以上只是提供一个思路,这只是一个 demo,不是成品,肯定存在诸多问题,请根据自身情况调整。


    另外,我觉得这个大纲应该可以实现,思源已经有 api 可以获取大纲数据,只需要配合 js 和 css 输出并做好兼容应该就可以了。

    只是,不知道有没有大佬愿意去做。

    个人觉得,这样的需求会不会是小众需求,大纲放到文档里会不会太占空间,尤其是小屏幕的用户,悬浮展示不好吗?毕竟笔记不是浏览器,笔记里通常会打开侧边栏等,而浏览器通常不会。而且,有人看文章时会不停点大纲吗?一般应该只是偶尔操作下吧,如果这样的话,岂不是现有的悬浮方式更合适,没有别的意思,只是疑惑大家为什么有这个需求。

    不知道你的想法或理由是什么?

    2 回复
    1 操作
    wilsons 在 2024-08-12 09:07:18 更新了该回帖
  • lunarcream

    主要是思源这个悬浮显示也不是真正的悬浮,我就是小屏用得多,那样更占空间。其次这个大纲大部分人都应该经常用到吧?特别是长文档,不可能每个文档只有一段话吧?

    1 回复
  • 难道不是悬不悬浮都占用相同的空间么?我觉得自动隐藏是更好的方案。

  • lunarcream

    谢谢大佬指点,我已经大概能实现效果了,但是我还想知道那个大纲 toc 列表要怎么改变样式?image.png

    1 回复
  • div[custom-block-position="sticky"] 中调整就行。

    不知道你说的是要调整什么?是去除多余字符吗

    比如

    div[custom-block-position="sticky"][data-type="NodeList"][data-subtype="u"] { position:absolute!important; top: 60px!important; right: 10px!important; left: auto!important; background-color: var(--b3-theme-background); /* 去除列表多余的字符 */ span[data-type^="a a "]:nth-child(2) { display:none; } }

    效果

    image.png

    另外,提醒下,toc 目录也不一定非要添加到前面,可以是任何位置,只要不和其他元素冲突就行,比如你也可以添加到最后。

请输入回帖内容 ...

推荐标签 标签

  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 16 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 1 关注
  • Anytype
    3 引用 • 31 回帖 • 27 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 248 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 107 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 3 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 440 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 104 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 112 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1432 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • sts
    2 引用 • 2 回帖 • 243 关注
  • CodeMirror
    2 引用 • 17 回帖 • 173 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖 • 2 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 1 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    86 引用 • 165 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    61 引用 • 29 回帖 • 10 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 124 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 597 回帖 • 1 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 393 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1021 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 1 关注