即使在滚动时,document.body.scrollTop在IE中始终为0

时间:2010-04-26 22:04:11

标签: html css

我在移动鼠标时在状态栏中显示document.body.scrollTop的值。 IE中的值始终为0。为什么总是0?是否有其他方法可以获得滚动条的移动量?

3 个答案:

答案 0 :(得分:115)

您可能希望在IE中尝试使用较旧的doctype:

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

答案 1 :(得分:14)

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

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

答案 2 :(得分:10)

根据DOCTYPE,您必须使用document.body.scrollTopdocument.documentElement.scrollTop。你试过第二个吗?

您可以这样做:

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

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

这可能会帮助你多一点。