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方法相关推荐

  1. scrolltop 原生js_JS中完美兼容各大浏览器的scrolltop方法

    1.各浏览器下 scrollTop的差异 IE6/7/8/9/10: 对于没有doctype声明的页面里可以使用  document.body.scrollTop 来获取 scrollTop高度 : ...

  2. html5视频自动播放兼容谷歌浏览器,html5实现完美兼容各大浏览器的播放器

    歌曲播放我们会发现他的兼容性不是很好,譬如IE上能播放的flash播放器,再firfox或者chrome上就不是很好的应用了,因为有插件的阻碍!HTML5的出现让这一切成为了可能,但是播放器虽然播放了 ...

  3. php html5 播放器,html5实现完美兼容各大浏览器的播放器_html5教程技巧

    歌词同步播放器-powered by widuu xiaowei [ar:测试用 ] [00:03.00]洋葱 [00:06.00]演唱:平安 [00:09.00] [00:11.38]如果你眼神能够 ...

  4. 问题之JS中传递数值过大或前置有零时

    1.JS中传递数值多大数值会变     var number = 00161213313254545433     turnToDetail(number);     function turnToD ...

  5. 绒毛动物探测器:通过TensorFlow.js中的迁移学习识别浏览器中的自定义对象

    目录 起点 MobileNet v1体系结构上的迁移学习 修改模型 训练新模式 运行物体识别 终点线 下一步是什么?我们可以检测到脸部吗? 下载TensorFlowJS-Examples-master ...

  6. 批量打开网站链接工具,兼容各大浏览器,用户体验良好

    介绍一个批量打开网站链接的工具,兼容各大浏览器,在用户体验上升级,实现更加良好简单的使用,为各位有需求的大大提供了方便性 在线工具地址:https://www.lmcjl.com/index/grab ...

  7. CSS完美兼容IE6/IE7/FF的通用方法 ~!!!

    http://www.w3pop.com/learn/view/p/2/o/0/doc/css_hack_ie67_ff/ CSS完美兼容IE6/IE7/FF的通用方法 作者:w3pop.com 翻译 ...

  8. JS 中 scrollWidth、scrollHeight、scrollLeft 、scrollTop 详解

    1. 总述 在JS 中scrollWidth.scrollHeight.scrollLeft .scrollTop 属性在做一些复杂的交互效果中是非常常用的,因此在本博文中详细的介绍并给出实例. 以上 ...

  9. js获取用户的操作系统和浏览器版本的方法

     让IE支持placeholder属性 通过window.location获得URL的信息 js获取用户的操作系统和浏览器版本的方法 2013-07-17 15:12:11|  分类: 工作 |  ...

最新文章

  1. 今天开始搞CentOS 7
  2. 实验0 了解和熟悉操作系统
  3. 三手火箭载二手飞船送四名平民上太空,马斯克负责创造历史,另一位富豪出钱买单...
  4. python怎么安装pandas模块-python如何导入安装pandas模块并使用别名
  5. expect简单教程
  6. Scala基础教程(九):提取器、文件I/O
  7. 在无头单链表的一个非头节点前插入一个节点(C语言)
  8. 抓包工具mitmproxy环境配置使用(一)
  9. 曾经的独角兽 Docker,如今资金紧张
  10. Highcharts使用表格数据绘制图表
  11. 确定互异字符(编程基础)
  12. 使用Python编写简单的端口扫描程序
  13. 小米无线路由器服务器用户名和密码忘了,小米路由器管理密码忘记了怎么办?...
  14. ◎◎首都机场大巴最新路线时刻表◎◎
  15. 资产分类计算机软件,固定资产管理系统_资产分类名称(电子计算机及其外围设备篇)...
  16. java excel 插入新行_复制一行,在多个工作表Excel VBA上插入多个带有粘贴信息的新行...
  17. 一个高逼格开发者必须理解的大型分布式网站的几点概念
  18. Python文件处理和异常处理基础知识
  19. 三天一题-20- Integer to Roman(Integer转成古罗马数字)
  20. matlab程序模拟微信抢红包,js仿微信抢红包功能

热门文章

  1. div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!
  2. c语言堆栈基本代码入栈出栈_c语言的简单的进栈出栈
  3. django 模板两次for循环_Django模板之基本的 for 循环 和 List内容的显示方式
  4. 王道操作系统考研笔记——2.3.2 进程互斥的软件实现方法
  5. jsp页面页面post传值_几种JSP页面传值方式
  6. WordPress 5.0 换回老版”Classic Editor”经典编辑器教程
  7. Linux C编程---指针数组简析(二维数组、多级指针)
  8. Linux tcpdump命令用法详解
  9. [vim] vim中使用cscope的安装与使用
  10. Qt Creator 使用技巧