Windows 10.0.16299.309上的Chrome 65.0.3325.181。显示器:27“,3840×2160。
显示缩放到150%,在Chrome的控制台中输入:
document.documentElement.scrollTop = 1 1 document.documentElement.scrollTop 0.6666666865348816
document.documentElement.scrollTop = 9 9 document.documentElement.scrollTop 8.666666984558105
从页面顶部开始的window.scrollBy(x, y)
和window.scrollY
的另一项测试:
(function f() {
scrollBy(0, 1)
console.log(scrollY)
if (scrollY < 10) {
f()
}
})()
输出(15行 - 预期数量的1.5倍):
0.6666666865348816 1.3333333730697632 2 2.6666667461395264 3.3333332538604736 4 4.666666507720947 5.333333492279053 6 6.666666507720947 7.333333492279053 8 8.666666984558105 9.333333015441895 10
另一项window.scroll(x, y)
测试:
(function f(n) {
scroll(0, n)
console.log(scrollY)
if (scrollY < 10) {
f(n + 1)
}
})(1)
输出(10行 - 正如预期的那样,因为没有积累):
0.6666666865348816 2 2.6666667461395264 4 4.666666507720947 6 6.666666507720947 8 8.666666984558105 10
显示缩放至125%:
document.documentElement.scrollTop = 1 1 document.documentElement.scrollTop 0.800000011920929
在我看来,如果value - 1 + 1/scale
不是整数,则value * scale
会“计算”真正设定的值。
这是我的网站,Windows或Chrome的错误吗?