20

据我所知,pageXOffset/pageYOffset自 Netscape 4 时代以来,属性就已经可用。
它似乎scrollX/scrollY是在 Netscape 6 中引入的。

替代问题:

Q2。有没有实现scrollX/scrollY但不支持pageXOffset/pageYOffset的浏览器?

我将添加第三个问题,因为没有人能够回答前面的问题:

Q3。最新的CCSOM编辑草稿中增加了scrollX/scrollY,而工作草稿只有pageXOffset/pageYOffset,为什么要保留这两个属性?

4

4 回答 4

7

是否有实现 scrollY/X 但不支持 pageY/XOffset 的浏览器

我想你想知道的是你是否可以完全信任pageY/XOffset并退出scrollY/X游戏。答案是肯定的。pageY/XOffset在 Firefox、Chrome、Opera 和IE 9 中运行!

我目前无法scrollX/Y在 IE9 上进行测试,但它未列在MSDN 属性中,因此它很有可能回答您的问题。所以可能有浏览器实现pageY/XOffset但没有scrollY/X

为什么要引入 window.scrollY 和 window.scrollX?

由于scrollY只是一个alias,我相信它只是为了更好的可读性。

于 2010-11-05T13:14:26.643 回答
2

关于它的一切。如您所见pageXOffset,Internet Explorer 8 及更低版本不支持。在 IE8(及更低版本)中,您应该使用scrollLeft/ scrollTopofdocument.bodydocument.documentElement取决于工作方式(就像在 jQuery 中实现一样)。

你可以在这里查看:http: //jsfiddle.net/8RFAn/1/

而且我不知道为什么要window.scrollX/Y引入这些属性,对我来说这些属性看起来像是pageX/YOffset在效果和实现的浏览器方面。

于 2010-09-25T20:33:44.550 回答
-1

我会尽量用我的常识来回答,如果这不是你在问题中的意思,没有什么官方的,所以很抱歉。

window.scrollY 和 window.scrollX 用于决定网站用户垂直或水平滚动了多少。

例如,这在只能检测文档中某些内容的“绝对”位置并需要在其顶部/旁边放置其他内容的脚本中很有用,因此使用 scrollX 和 scrollY 值可以计算出正确的位置。

因此,当对自定义工具提示等动态脚本的需求出现时,负责 JavaScript“框架”的人员可能会接听电话并介绍这些属性。

就像我说的,不是官方答案,你的谷歌搜索会和我的一样好找到这样的答案。:)

于 2010-11-05T05:27:49.497 回答
-1

正如 pepkin88 所说,早期版本的 Internet Explorer 不支持 pageXOffset(和所有 pageXY 值)。大多数用于定位对象和计算鼠标位置的属性都不是 W3C 标准的一部分。从我记得阅读的内容来看,大多数属性都是微软的发明。因此,当您谈到 scrollX 和 scrollY 时,您所说的是原始pageXYOffset 值。当支持 pageXY 属性(不是 Microsoft 模型的一部分)的标准兼容浏览器出现时,他们认为坚持使用 scrollXY 值会太混乱。因此,他们切换到了一个更合乎逻辑(在他们看来)的版本:pageOffset。

在我看来,我发现 scrollXY 值使用起来更直观。每次我尝试在 screenX、pageX 或 clientX 之间做出决定时,我通常都会停下来思考。我认为他们可以为每个属性想出更直观的名称。无论如何,它们都不是真正的 W3C 标准,所以我想约定在这个 JavaScript 领域并不是那么重要。不过,我很高兴微软发明了它们,因为它们非常有用。

于 2010-11-05T04:56:41.427 回答