即使在滚动时,document.body.scrollTop在IE中也总是为0

我在移动鼠标时在状态栏中显示document.body.scrollTop的值。 IE中的值始终为0。 为什么总是0? 还有另一种方式来获得滚动条已经移动了多less?

您可能想要在IE中使用较旧的文档types:

var top = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop; 

这个函数提供了读取滚动偏移量的跨浏览器实现:

 function posTop() { return typeof window.pageYOffset != 'undefined' ? window.pageYOffset: document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop? document.body.scrollTop:0; } 

根据DOCTYPE,您将不得不使用document.body.scrollTopdocument.documentElement.scrollTop 。 你尝试过第二个吗?

你可以做这样的事情:

 var scrollTop = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop; 

我在研究你的问题时遇到了这些链接:

  • 窗口大小和滚动 (向底部)
  • 在IE中document.body.scrollTop

这可能会帮助你多一点。