ScrollTop的兼容问题

Posted kumayato

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ScrollTop的兼容问题相关的知识,希望对你有一定的参考价值。

今天在练习一个项目的时候,发现效果不能同时在谷歌和火狐正常显示,原来是因为通过判断DTD是否声明而导致了浏览器不兼容。

一下是解决的几种方法。

方法一:

// 获取scrolltop

    function getScrollTop() {
        var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
        return scrollTop;
    }

// 设置scrolltop

    function setScrollTop(scroll_top) {
        document.documentElement.scrollTop = scroll_top;
        window.pageYOffset = scroll_top;
        document.body.scrollTop = scroll_top;
    }

方法二:

var scrollPos; 
if (typeof window.pageYOffset != ‘undefined‘) 
{ 
   scrollPos = window.pageYOffset; 
} 
else if (typeof document.compatMode != ‘undefined‘ &&    document.compatMode != ‘BackCompat‘) 
{ 
   scrollPos = document.documentElement.scrollTop; 
} 
else if (typeof document.body != ‘undefined‘) 
{ 
   scrollPos = document.body.scrollTop; 
}

方法三 运用jQuery解决:

$(selector).scrollTop(offset)

 

以上是关于ScrollTop的兼容问题的主要内容,如果未能解决你的问题,请参考以下文章

ScrollTop的兼容问题

jQuery-jquery scrollTop怎么解决所有浏览器兼容问题

滚动值的兼容问题

关于document.body.scrollTop 的谷歌,火狐浏览器兼容问题

document.body.scrollTop与document.documentElement.scrollTop兼容

JS中完美兼容各大浏览器的scrolltop方法