Windows 滚动条里藏着的 Shift 点击快捷键

A brief history of Windows scroll bar shortcuts

Windows 滚动条在长达二十年的时间里只有基础操作,直到 Windows 7 才引入了右键菜单和 Shift 点击跳转的隐藏技巧。这个 Shift 点击功能让我能直接跳到指定位置,比拖拽拇指方便太多。可惜如今 Win32 原生滚动条已鲜有人用,Electron 和 Chromium 只保留了 Shift 点击,WinUI 却两者皆无,而 Qt 则把选择权交给了开发者。当我终于学会这个快捷键时,生态系统的碎片化已让我无法确信它是否还能正常工作。

当我终于学会了滚动条的快捷键(Shift 加点击),生态系统已经碎片化到让我甚至无法依赖它正常工作。
  1. bartread

    遗憾的是,几乎没人再用 Win32 滚动条了。大家都用那些自带自定义滚动条的框架。

    没错,而且同样遗憾的是,这些框架的实现都因为开发者缺乏关心、专注或兴趣而陷入各种胡扯的境地。我说的“胡扯”是指它们要么行为怪异,要么功能缩水。

    但我非常怀念 Windows 应用程序(甚至任何操作系统上的应用程序)拥有统一用户体验的日子。

    我并不介意你想为应用打造独特的视觉风格:但我非常介意如果你的控件行为与其他同类型控件不一致,或者至少,任何差异都应该是操作系统功能的超集,而不是被阉割的子集。

    随着时间推移,微软让这一切变得愈发困难,他们不断推出新的 UI 框架,后来 CEF 和 Electron 也加入了混战。Windows 的 UI 故事大概在 2007 年左右开始变得特别混乱,至今至少已陷入这种糟糕的混乱状态 15 年了。

    说实话,我现在完全不知道开发 Windows 桌面应用该用什么,而且老实说,没有任何选项能让我感到兴奋。最近的桌面实验(部分原因是虽然我希望它们在 Windows 上运行,但我主要不在 Windows 上工作)让我选择了 Rust + Qt 路线,仅仅因为它能提供原生性能,而且我不觉得短期内会被任何一方开发者“突然撤走地毯”……

  2. mrob

    在我看来,点击滚动条的默认动作应该是“滚动到此处”。PageUp 和 PageDown 已经有不错的键盘快捷键了,但“滚动到此处”不可能有键盘快捷键。当你可以利用鼠标独有的功能时,却浪费鼠标的潜力去重复键盘功能,这很不合理。

    GTK 做得对,而 Qt 没有。

  3. layer8

    Raymond Chen 是时候开始抱怨 UI 不一致日益增多以及那些曾经无处不在的功能逐渐消失的问题了。(或者也许我漏看了之前的文章。)

  4. butz

    一个非常令人担忧的趋势是网站上的细滚动条,或者在极少数情况下——滚动条直接隐藏。幸好 Firefox 在 about:config 里有个设置:layout.css.scrollbar-width-thin.disabled=true 。

  5. chrismorgan

    在 Linux/GTK 中,点击滚动条空白处会跳转到该位置。我刚刚发现 Shift+ 点击等同于 PageUp/PageDown,而右键点击在 Firefox 中似乎也等同于 PageUp/PageDown,但在 LibreOffice(Writer 中每屏 15 秒,6fps)和 Inkscape(每屏 3 秒,流畅)中,按住右键会以固定的慢速滚动;中键点击大多是 PageUp/PageDown,但在 Firefox 中无效;我想这些是我使用(甚至可能安装)的仅有的带有常规滚动条的应用。

    哦对了,还有一个,BibleTime(基于 Qt):它相当 Windows 风格,点击是 PageUp/PageDown,右键是上下文菜单(滚动到此处,---,顶部,底部,---,上一页,下一页,---,向上滚动,向下滚动),Shift+ 点击与点击相同,中键是滚动到此处。

    (这类问题也是你不应该在网页中实现自定义滚动条的原因之一:不同平台行为不同,你无法合理甚至根本无法完全匹配所有情况。)

同日更多故事

2026-09-23