javascript element.scrollBy不会滚动给定距离
当我在chrome(87)中使用element.scrollBy(x,y)时,elements视口滚动位置(element.scrollTop)实际上不会滚动预期的值,而是作为scrollBy()的参数提供 差异始终在0.1到0.5 px之间,并且对于不同的参数值是不同的 我测试了1-30之间的数值,显示比率为1.75:javascript element.scrollBy不会滚动给定距离,javascript,scroll,Javascript,Scroll,当我在chrome(87)中使用element.scrollBy(x,y)时,elements视口滚动位置(element.scrollTop)实际上不会滚动预期的值,而是作为scrollBy()的参数提供 差异始终在0.1到0.5 px之间,并且对于不同的参数值是不同的 我测试了1-30之间的数值,显示比率为1.75: 1) actual:0.57, diff:0.43 2) actual:1.71, diff:0.29 3) actual:2.86, diff:0.14 4) act
1) actual:0.57, diff:0.43
2) actual:1.71, diff:0.29
3) actual:2.86, diff:0.14
4) actual:4.00, diff:-0.00
5) actual:4.57, diff:0.43
6) actual:5.71, diff:0.29
7) actual:6.86, diff:0.14
8) actual:8.00, diff:0.00
9) actual:8.57, diff:0.43
10) actual:9.71, diff:0.29
11) actual:10.86, diff:0.14
12) actual:12.00, diff:-0.00
13) actual:12.57, diff:0.43
14) actual:13.71, diff:0.29
15) actual:14.86, diff:0.14
16) actual:16.00, diff:0.00
17) actual:16.57, diff:0.43
18) actual:17.71, diff:0.29
19) actual:18.86, diff:0.14
20) actual:20.00, diff:0.00
21) actual:20.57, diff:0.43
22) actual:21.71, diff:0.29
23) actual:22.86, diff:0.14
24) actual:24.00, diff:0.00
25) actual:24.57, diff:0.43
26) actual:25.71, diff:0.29
27) actual:26.86, diff:0.14
28) actual:28.00, diff:0.00
29) actual:28.57, diff:0.43
有4个值按以下顺序重复:0.00,0.43,0.29,0.14
我弄不懂这是什么原因。我唯一发现的是element.scrollTop和这些函数可以返回分数,而不仅仅是整数,这与highDPI显示有一定关系
这对我来说是一个问题,因为我实现了一个鼠标拖动滚动功能,它将鼠标移动事件转换为滚动移动,并且移动值通常很小,这意味着相对于鼠标速度而言,错误相当大,并且视口的滚动比不是1:1
Firefox没有这个问题
我错过了什么
JSFiddle: