js 获取 网页屏幕高度 窗口高度 元素高度 滚动高度

  1. 常用:

    JS 获取浏览器窗口大小

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 获取窗口宽度
    if (window.innerWidth)
    winWidth = window.innerWidth;
    else if ((document.body) && (document.body.clientWidth))
    winWidth = document.body.clientWidth;
    // 获取窗口高度
    if (window.innerHeight)
    winHeight = window.innerHeight;
    else if ((document.body) && (document.body.clientHeight))
    winHeight = document.body.clientHeight;
    // 通过深入 Document 内部对 body 进行检测,获取窗口大小
    if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
    {
    winHeight = document.documentElement.clientHeight;
    winWidth = document.documentElement.clientWidth;
    }

    详细:

    关于获取各种浏览器可见窗口大小: 
    <script> 
    function getInfo() 

    var s = ""; 
    s = " 网页可见区域宽:" document.body.clientWidth; 
    s = " 网页可见区域高:" document.body.clientHeight; 
    s = " 网页可见区域宽:" document.body.offsetWidth " (包括边线和滚动条的宽)"; 
    s = " 网页可见区域高:" document.body.offsetHeight " (包括边线的宽)"; 
    s = " 网页正文全文宽:" document.body.scrollWidth; 
    s = " 网页正文全文高:" document.body.scrollHeight; 
    s = " 网页被卷去的高(ff):" document.body.scrollTop; 
    s = " 网页被卷去的高(ie):" document.documentElement.scrollTop; 
    s = " 网页被卷去的左:" document.body.scrollLeft; 
    s = " 网页正文部分上:" window.screenTop; 
    s = " 网页正文部分左:" window.screenLeft; 
    s = " 屏幕分辨率的高:" window.screen.height; 
    s = " 屏幕分辨率的宽:" window.screen.width; 
    s = " 屏幕可用工作区高度:" window.screen.availHeight; 
    s = " 屏幕可用工作区宽度:" window.screen.availWidth;

    s = " 你的屏幕设置是 " window.screen.colorDepth " 位彩色"; 
    s = " 你的屏幕设置 " window.screen.deviceXDPI " 像素/英寸"; 
    //alert (s); 

    getInfo(); 
    </script> 
    在我本地测试当中: 
    在IE、FireFox、Opera下都可以使用 
    document.body.clientWidth 
    document.body.clientHeight 
    即可获得,很简单,很方便。 
    而在公司项目当中: 
    Opera仍然使用 
    document.body.clientWidth 
    document.body.clientHeight 
    可是IE和FireFox则使用 
    document.documentElement.clientWidth 
    document.documentElement.clientHeight 
    原来是W3C的标准在作怪啊 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    如果在页面中添加这行标记的话 在IE中: 
    document.body.clientWidth ==> BODY对象宽度 
    document.body.clientHeight ==> BODY对象高度 
    document.documentElement.clientWidth ==> 可见区域宽度 
    document.documentElement.clientHeight ==> 可见区域高度 
    在FireFox中: 
    document.body.clientWidth ==> BODY对象宽度 
    document.body.clientHeight ==> BODY对象高度 
    document.documentElement.clientWidth ==> 可见区域宽度 
    document.documentElement.clientHeight ==> 可见区域高度 

    在Opera中: 
    document.body.clientWidth ==> 可见区域宽度 
    document.body.clientHeight ==> 可见区域高度 
    document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽) 
    document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) 
    而如果没有定义W3C的标准,则 
    IE为: 
    document.documentElement.clientWidth ==> 0 
    document.documentElement.clientHeight ==> 0 
    FireFox为: 
    document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) 
    Opera为: 
    document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)

  2. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth   
  3. scrollHeight: 获取对象的滚动高度。   
  4. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离   
  5. scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离   
  6. scrollWidth:获取对象的滚动宽度   
  7. offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度   
  8. offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置   
  9. offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置   
  10. event.clientX 相对文档的水平座标   
  11. event.clientY 相对文档的垂直座标   
  12. event.offsetX 相对容器的水平坐标   
  13. event.offsetY 相对容器的垂直坐标   
  14. document.documentElement.scrollTop 垂直方向滚动的值   
  15. event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量  

 

元素的实际高度:document.getElementById("div").offsetHeight
元素的实际宽度:document.getElementById("div").offsetWidth
元素的实际距离左边界的距离:document.getElementById("div").offsetLeft
元素的实际距离上边界的距离:document.getElementById("div").offsetTop

原文地址:https://www.cnblogs.com/Denny_Yang/p/7324774.html