首页 > 解决方案 > 为什么 Safari 在滚动页面上为 window.scrollY 提供不同的初始值?

问题描述

因此,选择一个高度大于视口高度的网页。

x您从顶部向下滚动像素。

您登录window.scrollY到控制台并打印 int x

x是大于 0 的某个数字(并且小于无关的最大值)。

 

现在,您刷新页面。浏览器呈现您之前滚动到的位置。以下脚本运行:

// script.js

window.onload = function() {
  console.log(window.scrollY);
}

 

预期输出为x

在 Firefox 中进行测试打印x

在 Safari 中测试打印0.

 

此外:

x滚动开始后,Safari 会准确打印。

如果window对象在加载时打印,则scrollY属性为x,而不是0

 

为什么会出现这种差异?

标签: javascriptfirefoxsafariwebkit

解决方案


推荐阅读