平滑滚动的弊端

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您的旅程中的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

平滑滚动 变得更加容易。 如果你希望在页面上始终使用它,并且你乐意让浏览器为你处理持续时间,那么只需一行 CSS 代码即可

html {
  scroll-behavior: smooth;
}

我在本网站的 第 17 版 上尝试了这个功能,它成为了 第二不受欢迎的功能,仅次于粗大的滚动条。 我没有改变滚动条。 我喜欢它。 我是滚动条的忠实用户,将其设计得粗大对我来说更实用,而且自定义样式也很有趣。 但我确实恢复了不使用平滑滚动。

正如 Šime Vidas 在 Web Platform News 中 指出的,维基百科也尝试过平滑滚动

最近为移动设备上的差异中移动的段落设计的动画滚动,在点击段落的另一个实例时会出现动画滚动。 此动画的目的是帮助用户了解段落移动到的位置。

我们最初认为此行为将使 Minerva 整体受益(例如,当使用目录导航到页面部分时,动画滚动将非常棒),但在尝试后,我们决定将此更改范围限制为目前仅用于移动设备上的差异视图

我理解无法调整时间是一个缺点,但这不是我放弃平滑滚动的原因。 让很多人感到沮丧的是 页面内搜索。 点击链接并被放大到某个标题(感觉还不错)是一回事,但当你试图快速浏览匹配项时,当你对页面执行 查找 操作时,又是另一回事。 人们发现匹配项之间的滚动速度很慢,而且很令人沮丧。 我同意。

令人惊讶的是,即使是平滑滚动的 JavaScript 变体…

document.querySelector('.hello').scrollIntoView({ 
  behavior: 'smooth' 
});

…也无法调整时间。 也没有可靠的方法来检测页面是否正在积极地进行搜索,以便进行 UX 更改,例如关闭平滑滚动。

也许平滑滚动最大的缺点是可能会错误地管理焦点。 在 JavaScript 中滚动到元素是可以的,只要你几乎将焦点移动到滚动到的位置即可。 Heather Migliorisi 在此详细介绍