document.body.scrollTop 各浏览器兼容性解决

Posted Malvina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了document.body.scrollTop 各浏览器兼容性解决相关的知识,希望对你有一定的参考价值。

  document.compatMode:获取当前浏览器采用的渲染方式。主要是浏览器的模式,有两个:BackCompat,CSS1Compat。其中前者是怪异模式,后者是标准模式。 

    IE默认是BackCompat模式,Gecko内核的浏览器只在table中图片层上不同,可以认为CSS1Compat标准模式document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth; 
  当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。 
  浏览器客户区高度、滚动条高度、滚动条的Left、滚动条的Top等等都是上面的情况。 
  一个准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top的代码: 

if (document.compatMode == \"BackCompat\") 

  cWidth = document.body.clientWidth; 
  cHeight = document.body.clientHeight; 
  sWidth = document.body.scrollWidth; 
  sHeight = document.body.scrollHeight; 
  sLeft = document.body.scrollLeft; 
  sTop = document.body.scrollTop; 

else 

  //document.compatMode == \"CSS1Compat\" 
  cWidth = document.documentElement.clientWidth; 
  cHeight = document.documentElement.clientHeight; 
  sWidth = document.documentElement.scrollWidth; 
  sHeight = document.documentElement.scrollHeight; 
  sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft; 
  sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop; 

以上是关于document.body.scrollTop 各浏览器兼容性解决的主要内容,如果未能解决你的问题,请参考以下文章

兼容各大浏览器 onscrool

js的window.onscroll事件兼容各大浏览器

关于取可视区到页面顶部距离(scrollTop)各浏览器不同的方法(兼容性)

JS之scrollTop详解

原生js获取scrollTop

关于scrollTop的兼容问题