块引交互逻辑修改提议

本贴最后更新于 936 天前,其中的信息可能已经时移世改

提议将块引交互逻辑修改为:左键 仍然是跳转,右键 改为打开浮窗,ctrl+click 改为 修改锚文本,悬停时不做任何操作

目前的悬停打开浮窗会导致有时候不想打开浮窗,却不小心打开浮窗

比如在打字时会不小心打开浮窗:

temp227.gif

在滚动时会不小心打开浮窗:

temp228.gif

以及现在的浮窗不能动态加载,不小心打开大文档的浮窗后,思源会直接卡死

因此,可以考虑将悬停打开浮窗变为右键打开浮窗,在交互便捷程度上差不多,而且不会出现误触打开浮窗的情况

而目前右键的主要功能是修改锚文本

除了右键修改锚文本,还可以在粘贴块引用前先写好修改后的内容,然后选中修改后的内容,粘贴:

temp229.gif

也可以直接在正文中修改:

temp230.gif

而且修改锚文本本身相比跳转和浮窗来说是较为低频的操作,对于大部分块引用来说,最多只修改一次锚文本,因此可以改变成 ctrl + click 修改锚文本

现有的 ctrl+click 功能,和浏览器的逻辑对应,可以改成使用中键

  • 思源笔记

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

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

    22350 引用 • 89424 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 悬浮这个操作更方便一些,暂时不改了,继续收集反馈看看。

    1 回复
  • fangly 1 评论

    来份不是特别严谨的反证法:

    首先把便捷程度定义为:用户产生弹出某个窗口的想法 到 该窗口真正弹出 所需的时间。时间越短,越便捷。

    假设悬浮操作比右键更便捷

    当鼠标移动到块引用上时,用户有两个可能选择:等待悬停出现浮窗 or 右键修改锚文本

    若悬停比右键更便捷,则悬停出现浮窗的速度应当快于右键,即浮窗先出现,右键的修改锚文本窗口后出现,这时就会出现下图的情况,修改锚文本的窗口在浮窗的底下,用户将无法修改锚文本:

    image.png

    而实际情况是,右键的修改锚文本窗口先出现,浮窗还没来得及出现就因为修改锚文本窗口的出现被中断了,假设情况与实际情况产生矛盾,假设不成立

    思源目前操作逻辑的隐含假设应当是右键比悬停更便捷,而目前的右键功能却绑定给了一个非高频操作。

    当然这部分交互的改动对用户的影响比较大,还需要多方考虑,我只是提了一种修改方案,也可以有别的方案,但这部分的交互设计我认为肯定是有提升空间的。我是因为看到 反馈:使用一些时间后的提议,图标、交互、引用、跳转、浮窗、布局。 这个帖子,有一点想法,所以提议了一下。

    像下面这个情况,我是经常遇到的,比如我要在某句话后面加几个引用块,然后这时我会把鼠标移动到这句话后面,然后点击一下,把鼠标定位在这句话最后,接着写块引用,这时候写完第一个块引用,鼠标自然就悬停在第一个块上,因此一定会出现这个块引用的浮窗,而这并不是我预期的:

    同时,我的某些文档里面几乎全是块引用(类似 MOC、zettelkasten),在这些文档里面查看时,时不时就会弹出并不是我预期的浮窗,导致我查看这些文档时都得小心翼翼的。

    在 web 页面设计中,悬停显示浮窗是符合直觉的做法,但是思源中的块引用为什么会不一样,我认为主要有这两个原因:

    1. 思源是所见即所得,在编辑过程中也会弹出浮窗,因此会在编辑过程中出现非预期的浮窗弹出行为,而对于写 web 界面的开发者来说,在写代码时并不会弹出浮窗。
    2. 一般的 web 页面可以弹出浮窗的触发点比较少,不容易误触,而笔记中,有的页面会有大量的块引用,容易误触。因此,对于其他的浮窗,比如面包屑浮窗、反链浮窗,悬停展示就没什么问题,但对于块引用,就容易出现误触的情况。
    6 操作
    fangly 在 2022-05-01 15:51:23 更新了该回帖
    fangly 在 2022-05-01 14:51:00 更新了该回帖
    fangly 在 2022-05-01 01:04:15 更新了该回帖
    fangly 在 2022-05-01 00:58:44 更新了该回帖 fangly 在 2022-05-01 00:44:13 更新了该回帖 fangly 在 2022-05-01 00:40:25 更新了该回帖
    在浏览的时候,光标一般在右侧靠近滚动条的位置;在编辑的时候光标会停留在上一次的位置。在移动且悬停的时候应该就是需要查看的时候。如果不习惯的话可以加一个按住 ctrl 再显示的选项,这样如何?
    Vanessa
  • fangly 3 评论

    @Vanessa

    用户能选择 ctrl 悬停弹出浮窗的话,是否能在设置中再多一个可选项:右键显示浮窗,ctrl+ 悬停修改锚文本?

    在浏览的时候,鼠标在自然情况下应该在正文的位置而不会在两边留白处,用户一般不会为了避免误触而特意把鼠标往右边放,更何况在窄宽度的情况下,两侧没有留空,鼠标只能在正文中。而且编辑和浏览之间并没有界限,编辑过程中肯定会有浏览回顾的过程,浏览回顾的过程中也经常需要编辑修改,一边编辑一边浏览是常态,这时候鼠标大部分情况下肯定是停留在中间正文中。

    在我帖子最前面的两张动图中,都不是“移动且悬停”的情况,但都弹出了浮窗:

    像下面这种页面就属于浮窗的灾难,根本无法避免浮窗的误触弹出,鼠标根本不知道要放在哪里:

    image.png

    这种全部是引用的页面不是我故意找茬的,在双链笔记中流行的卡片盒笔记法中是一定会出现这种页面的,可以称为卡片盒,比如下面 roam research 社区中的例子。我最近就经常和这类页面打交道,导致我最近的使用体验非常糟糕,每次看文档都得小心翼翼地避免浮窗的非预期弹出:

    image.png

    roam 里面没有浮窗,所以他们不考虑这个问题,思源里面有浮窗的话,就需要考虑这种页面下怎么避免用户误触浮窗

    这个不是习惯的问题,悬停打开浮窗确实是符合习惯的,浮窗也是很常用的功能,我认为是思源的杀手锏之一,目前思源的浮窗功能是所有双链软件中最强的,但是要解决非预期弹出浮窗的情况,用户不想浮窗弹出的时候浮窗弹出来了,这就很恼火。

    添加按住 ctrl 再显示浮窗的选项我觉得对于不太用浮窗的用户来说可以接受,但对于常用浮窗的用户(例如我)来说有点过于麻烦了,毕竟浮窗是一个高频操作,每次都要按 ctrl 键悬停相比原先的直接悬停 用户体验上是直线下降,从纯鼠标操作变成了键盘和鼠标的配合操作,通过降低正常使用时的体验来减少非预期行为的发生我感觉不太合适,我个人还是倾向于右键更方便,现在的右键绑定给一个非高频操作个人感觉没啥必要 😂,当然我感觉最好的方案是在设置中能让用户自由选择以下几个选项:

    • 选项 1:悬停显示浮窗,右键修改锚文本(默认选项)
    • 选项 2:ctrl+ 悬停显示浮窗,右键修改锚文本(适合不太用浮窗的用户)
    • 选项 3:右键显示浮窗,ctrl+ 悬停修改锚文本(适合常用浮窗而且块引很多容易误触的用户,我中意这个 😄 ,不仅能非常便捷地打开浮窗,而且不会误触,这个选项不占用 ctrl+click,应该也不会影响思源的整体操作逻辑,只是把选项 2 颠倒了一下,是否能实现呢)
    这些情况应该只出现在正文编辑部分吧,其余的应该还是默认悬停,不需要跟随配置? 有了这些选项应该就不需要再配置悬停时间了。
    Vanessa
    @Vanessa 应该只有块引用的浮窗需要避免误触,其他的像面包屑和反链上的浮窗需要把鼠标悬停在块标上,不太会出现误触的情况。悬停时间我认为是不需要配置的,应当就是越短越好,我对现在的块引浮窗的感受是,想要浮窗弹出时,浮窗弹出有点拖沓,不想它弹出时,又时不时突然弹出。
    fangly 1
    Vanessa
  • WeiCJ

    在我个人的使用过程中,浮窗的正向效果带来的方便性还没有误触带来的负面效果大。

    [在日常的写作和阅读中] 浮窗的误触特别影响

    [在回顾以往记录的时候] 鼠标悬浮弹出浮窗的使用方式就很舒服

    不过目前我通过修改 css 和 js 将浮窗改为固定靠近右边的小窗口了,算是符合个人的一个使用习惯了,即使弹出也不会影响正文了。

推荐标签 标签

  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 764 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 62 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 624 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖 • 1 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 16 关注
  • 服务器

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

    125 引用 • 588 回帖
  • 自由行
    10 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 709 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 2 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 641 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 2 关注
  • InfluxDB

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

    2 引用 • 72 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 304 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖 • 1 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1705 回帖
  • QQ

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

    45 引用 • 557 回帖 • 67 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 21 关注
  • Git

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

    209 引用 • 358 回帖 • 2 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 483 关注
  • SQLite

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

    5 引用 • 7 回帖
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 9 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖 • 1 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注