一.当有DOCTYPE声明的时候,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
需要用document.documentElement.scrollTop方法来获取滚动条高度。
当没有声明的时候,用document.body.scrollTop方法。
所以我们需要用到if...else...去判断。
如果有DOCTYPE声明,我们该怎么办,如果没有DOCTYPE声明,我们该怎么办。
var scotop ;
if(document.body.scrollTop){
scotop = document.body.scrollTop;
}else{
scotop = document.documentElement.scrollTop
}
二.这个方法是google找来的。

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;
}
程序解释:
解释1:
document.body.scrollTop:就是滚动条顶部到网页顶部的这段距离
window.pageYOffset是NS专用属性,它的含义和IE下的document.body.scrollTop一样 。
解释2:
当文档有了标准声明时, document.compatMode 的值就等于 "CSS1compat",
当没声明的时候, document.compatMode 的值等于 "BackCompat",所以想判断文档是否有声明,
可以这么写:
if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){
}
解释3:
当文档没有声明的时候,可以用
document.body.scrollTop;来获取滚动条高度。
from: cssrain.cn

转载于:https://www.cnblogs.com/ksyou/archive/2009/05/11/1453958.html

关于scrollTop为0以及解决方法相关推荐

  1. C# MainWindowHandle为0的解决方法

    C# MainWindowHandle为0的解决方法 参考文章: (1)C# MainWindowHandle为0的解决方法 (2)https://www.cnblogs.com/xyz0835/p/ ...

  2. mysql sum 为 0 的解决方法

    mysql sum 为 0 的解决方法 参考文章: (1)mysql sum 为 0 的解决方法 (2)https://www.cnblogs.com/huanghuanghui/p/9338037. ...

  3. IE11不支持Selenium 2.0的解决方法

    IE11不支持Selenium 2.0的解决方法 参考文章: (1)IE11不支持Selenium 2.0的解决方法 (2)https://www.cnblogs.com/LanTianYou/p/4 ...

  4. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法

    csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法 参考文章: (1)csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计 ...

  5. 蓝牙耳机芯片,苹果弹窗电量显示为0的解决方法

    之前的蓝牙耳机重新都是默认电量为100%,但是后来添加了充电仓模块的程序之后,在选择使用一般充电仓的时候,手机弹窗就会0%,解决方法如下: 更新之后,我们能够发现原厂在之前的基础上进行了更深一步的封装 ...

  6. Matlab/Admas联合仿真提示 输入位移曲线 输出速度曲线为0的解决方法

    Matlab/Admas联合仿真 输入位移时输出速度为0的解决方法 解决方法:将Adams Solver type(求解器类型)由C++改为Fortran就可以解决. 建立一个小球,添加一个与地面连接 ...

  7. vue 中监听document.body.scrollTop 值总为0的解决方法

    // 基础资料 网页正文全文高: document.body.scrollHeight; 网页被卷去的高: document.body.scrollTop; scrollTop 设置或获取位于对象最顶 ...

  8. datagrid获取页面总记录数的方法,datagrid获取页面总记录数为0的解决方法

    1 在网上查了一大堆博客,都只有下面这一段,也不知道这些人有没有测试 var data=$('#tt').datagrid('getData'); alert('总数据量:'+data.total)/ ...

  9. SQLyog 报错2058 :连接 mysql 8.0.12 解决方法

    今天闲来无事,下载新版的 mysql 8.0.12 安装. 为了方便安装查看,我下载了sqlyog 工具 连接 mysql 配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了. ...

最新文章

  1. 2008年12月13日上海USB驱动开发深度解析讲座PPT
  2. 关于null和undefined
  3. Python入门100题 | 第007题
  4. VLDB 2019 | 揭秘腾讯TDSQL全时态数据库系统
  5. 正确使用cookie中的domain
  6. cordova插件开发
  7. palindromic java_Longest Palindromic Substring leetcode java
  8. 《软件测试技术》课程第二周随笔
  9. C++中字符串转换函数to_string
  10. signature=995eb8e443ef674d51fa76dabc7ac89c,我國7-8歲學童動作協調能力之初探
  11. Speaker Recognition: Feature Extraction
  12. @Component,@Bean
  13. jQuery动画实现下拉菜单二级联动
  14. lammps教程:晶体建模之Atomsk方法(1)
  15. c语言erf函数,c/c++开发分享精确计算缩放互补误差函数,erfcx()
  16. 基于php的酒店管理系统答辩ppt,基于PHP的连锁酒店管理系统毕业设计论文+任务书+开题报告+中期报告+答辩PPT+项目源码及数据库...
  17. 美团外卖离线数仓建设实践
  18. 使用苹果手机/PAD做树莓派的外接屏幕
  19. 服务器稳定度cpu温度,现在这天气我的CPU温度稳定在60度...打游戏70度,会不会烧?...
  20. JAVA性能优化,从此不再重启tomcat服务

热门文章

  1. Scrapy 框架 分布式 爬虫
  2. 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
  3. [转]expect实现ssh自动交互
  4. java怎么导入一个项目到eclipse
  5. Spring MVC 基础注解之@RequestMapping、@Controller、(二)
  6. 【转】 linux iio子系统
  7. php.ini文件找不到
  8. 10g 中RETENTION GUARANTEE 的作用
  9. STL标准库六大组件
  10. 小程序分享朋友圈之填坑模式