我发现,如果我通过单击和拖动来选择文本、Excel 中的单元格等,并将光标移动到屏幕底部,它会自动滚动并且速度恒定。如果我将光标移动到屏幕边缘略上方,它滚动得更慢。如果我快速地从左到右摇动光标并再次返回,滚动速度明显快于将其静止在屏幕底部。但是,如果我在快速摇动后再次将其静止,它又会变慢。
纯粹出于好奇,我希望得到一个导致这种行为的原因的解释 — — 最好是在技术实现层面。
我最好的猜测是,滚动速度大小是从第一次点击到当前光标位置的距离,而水平移动光标所形成的三角形的斜边大小更大(因此滚动速度更快)。然而,在正常情况下,如果我第一次点击的是一组文本或单元格的顶部,或者底部,速度不会有所不同——而且我的假设并没有考虑到抖动后变慢的情况。
答案1
猜测(因为此行为特定于应用程序),当指针静止时,会使用计时器触发滚动事件,而当指针处于正确的点击区域时,每个指针运动事件都会触发滚动事件。由于指针运动的报告率远高于计时器事件的报告率,因此滚动事件更经常由运动而不是等待生成。