IE8替代window.scrollY?

Jak*_*son 43 html javascript cross-browser internet-explorer-8

我正在尝试确定我滚动使用的像素数window.scrollY.但IE8不支持此功能.什么是安全的跨浏览器替代方案?

dsg*_*fin 104

跨浏览器兼容版本window.scrollYdocument.documentElement.scrollTop.请参阅此Mozilla文档的"注释"部分,以获取IE8及之前的完整,详细的解决方法.

正如这里提到的, pageYOffset是window.scrollY的另一种替代方法(注意,这只是IE9 +兼容).

关于上面的链接,请检查示例4以获得完全兼容的方式来获取滚动位置(它甚至考虑缩放为@adeneo提到!)使用document.documentElement.scrollTopdocument.documentElement.scrollLeft.

在这里,亲自试试这个例子吧!

  • `document.documentElement.scrollTop`在谷歌Chrome 40中给出0 (5认同)
  • 2018年4月4日,修复:) (3认同)
  • @McX这是因为正在进行的Chrome漏洞尚待解决(但从我看过的回复来看,它正处于修复过程中) - https://code.google.com/p/chromium/问题/细节?ID = 157855 (2认同)

Tom*_*duy 13

如果您不必经常使用它,请执行以下操作:

var scroll = window.scrollY //Modern Way (Chrome, Firefox) 
|| document.documentElement.scrollTop (Old IE, 6,7,8)
Run Code Online (Sandbox Code Playgroud)

  • 这是有效的,虽然我认为你不需要第二个(window.pageYOffset).虽然它有效,但所有旧的IE浏览器都支持`document.documentElement.scrollTop`获取滚动位置的方法.较新的IE浏览器("Edge")支持`window.scrollY`,如MDN中所述:https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY?redirectlocale = en-US&redirectslug = DOM%2Fwindow.scrollY (4认同)

Dan*_*iel 5

如果您使用 jQuery,我使用 $(window).scrollTop() 来获取 IE 8 中的 Y 位置。它似乎有效。