1

当向上/向下跳动(并激活滚动)时,滚动是瞬时的(不平滑)并且不会干净地落在一个值上。

如果你把它放在任何站点的控制台中,你可以比较不同的滚动行为:

document.addEventListener("scroll", () => {
    console.log("Scrolled");
    console.log(window.scrollY);
})

通过鼠标向上/向下滚动(工作正常)

  • 向上滚动,window.scrollY 的最后一个 print 将比上一个小,因为它更靠近视口的顶部

  • 向下滚动,window.scrollY 的最后一次打印会比上一次大,因为它离视口顶部更远

通过箭头键向上/向下滚动(工作正常,与上述相同)

切换时,它会激活滚动,这是它工作不正确的地方

  • 向下滚动,window.scrollY 的最后一次打印将比上一次打印少 1 个像素(*但并非总是如此。有时没关系。)

  • 向上滚动,window.scrollY 的最后打印将比上一个多 1 个像素

例如 Tab DOWN --> 激活滚动(非平滑)

PRINTS IN CONSOLE:
      3964.2666015625 
      Scrolled 
      4709.2666015625
      Scrolled 
      4708.2666015625           (It "lands" here)

我在 Edge 和 Chrome 中测试了同样的东西,它们正确打印 window.scrollY 并且脚本在那里运行良好。

4

0 回答 0