按子像素滚动网页

ama*_*ann 7 html javascript css

是否可以使用 JavaScript 按子像素滚动网页?

我想做类似以下的事情:

document.querySelector('body').scrollTop += 0.5
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为scrollTop 将给定的数字转换为整数,这会导致截掉数字的小数部分。

我需要这个才能自动滚动网页,但速度非常慢。如果我使用全像素,滚动看起来不平滑。

我唯一能想到的是改变translateY,因为它接受子像素。但这会破坏我的常规滚动行为,这是我真正想避免的。

编辑: 我创建了两个 JSFiddles 来显示差异:

它们以相同的速度滚动。但第一个并不顺利。但是,第二个破坏了本机滚动(之后您无法滚动到顶部)。我知道第二个可以通过使用 iScroll 或类似插件来修复,但如果不是绝对必要,我想避免这种情况。

有什么建议么?

ama*_*ann 2

显然 W3C 已经更改scrollTop. 现在它不再是整数,而是双精度数。因此,解决方案是等待浏览器供应商实现它。