手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS中完美兼容各大浏览器的scrolltop方法
JS中完美兼容各大浏览器的scrolltop方法
摘要:1、各浏览器下scrollTop的差异IE6/7/8/9/10:对于没有doctype声明的页面里可以使用document.body.scr...

1、各浏览器下 scrollTop的差异

IE6/7/8/9/10:

对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 ;

对于有doctype声明的页面则可以使用 document.documentElement.scrollTop ;

Safari:

safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset ;

Firefox:

火狐等等相对标准些的浏览器就省心多了,直接用 document.documentElement.scrollTop ;

2、获取scrollTop值

完美的获取scrollTop 赋值短语 :

复制代码 代码如下:

var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

通过这句赋值就能在任何情况下获得scrollTop 值。

仔细观察这句赋值,你发现啥了没??

没错, 就是 window.pageYOffset (Safari) 被放置在 || 的中间位置。

因为当 数字0 与 undefine 进行 或运算时,系统默认返回最后一个值。即或运算中 0 == undefine ;

当页面滚动条刚好在最顶端,即scrollTop值为 0 时,IE 下 window.pageYOffset (Safari) 返回为 undefine ,此时将 window.pageYOffset (Safari) 放在或运算最后面时, scrollTop 返回 undefine , undefine 用在接下去的运算就会报错咯。

而其他浏览器 无论 scrollTop 赋值或运算顺序如何都不会返回 undefine. 可以安全使用..

所以说到头还是IE的问题咯. 杯具…

精神有点恍惚,不知道有没有表达清楚。

不过最后总结出来这句实验过OK,大家放心使用。

复制代码 代码如下:

var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

这是完美的获取scrollTop赋值语句。

以上所述就是本文的全部内容了,希望大家能够喜欢。

【JS中完美兼容各大浏览器的scrolltop方法】相关文章:

JavaScript实现表格点击排序的方法

JavaScript点击按钮后弹出透明浮动层的方法

JS实现定时自动关闭DIV层提示框的方法

JS中的Replace方法使用经验分享

JQuery中DOM实现事件移除的方法

跨浏览器的设置innerHTML方法

原生JS和JQuery动态添加、删除表格行的方法

JavaScript中this关键字使用方法详解

jQuery判断一个元素是否可见的方法

JS实现简单路由器功能的方法

精品推荐
分类导航