浏览器窗口可视区域大小
获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:
一、对于IE9+、Chrome、Firefox、Opera 以及 Safari:

• window.innerHeight // - 浏览器窗口的内部高度
• window.innerWidth // - 浏览器窗口的内部宽度

二、对于 Internet Explorer 8、7、6、5:

• document.documentElement.clientHeight //表示HTML文档所在窗口的当前高度。
• document.documentElement.clientWidth //表示HTML文档所在窗口的当前宽度。

或者
Document对象的body属性对应HTML文档的<body>标签

• document.body.clientHeight
• document.body.clientWidth

在不同浏览器都实用的 JavaScript 方案:

var w= document.documentElement.clientWidth || document.body.clientWidth;
var h= document.documentElement.clientHeight || document.body.clientHeight;

网页尺寸scrollHeight
scrollHeight和scrollWidth,获取网页内容高度和宽度。
一、针对IE、Opera:
  scrollHeight 是网页内容实际高度,可以小于 clientHeight。
二、针对NS、FF:
  scrollHeight 是网页内容高度,不过最小值是 clientHeight。也就是说网页内容实际高度小于 clientHeight 时,scrollHeight 返回 clientHeight 。
三、浏览器兼容性

var w=document.documentElement.scrollWidth || document.body.scrollWidth;
var h=document.documentElement.scrollHeight || document.body.scrollHeight;

区分大小写scrollHeight和scrollWidth还可获取Dom元素中内容实际占用的高度和宽度。

网页尺寸offsetHeight
offsetHeight和offsetWidth,获取网页内容高度和宽度(包括滚动条等边线,会随窗口的显示大小改变)。
一、值

offsetHeight = clientHeight + 滚动条 + 边框。

二、浏览器兼容性

var w= document.documentElement.offsetWidth || document.body.offsetWidth;
var h= document.documentElement.offsetHeight || document.body.offsetHeight;

网页卷去的距离与偏移量
我们先来看看下面的图:

scrollLeft: 设置或获取位于给定对象左边界与窗口中目前可见内容的最左端之间的距离 ,即左边灰色的内容。
scrollTop: 设置或获取位于对象最顶端与窗口中可见内容的最顶端之间的距离 ,即上边灰色的内容。
offsetLeft: 获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 。
offsetTop: 获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算顶端位置 。

1. 区分大小写
2. offsetParent:布局中设置postion属性(Relative、Absolute、fixed)的父容器,从最近的父节点开始,一层层向上找,直到HTML的body。

例:

 <!DOCTYPE HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function req(){
var div = document.getElementById("div1");
document.getElementById("li1").innerHTML = (div.offsetTop)+"px";//div1距离屏幕顶部的距离
document.getElementById("li2").innerHTML = (div.offsetLeft)+"px";//div1距离屏幕左部的距离
document.getElementById("li3").innerHTML = (div.scrollTop)+"px";//div1纵向滚动条滚动的距离
document.getElementById("li4").innerHTML = (div.scrollLeft)+"px";//div1横向滚动条滚动的距离
}
</script>
</head>
<body style="border:10px solid #ccc;padding:0px 0px;margin:5px 10px">
<div style="width:60%;border-right:1px dashed red;float:left;">
<div style="float:left;">
<div id="div1" style="border:5px red solid;height:300px;width:200px;overflow:auto">
<div style="height:500px;width:400px">请调整横竖滚动条后,点击按钮后查看offsetTop、offsetLeft、scrollTop、scrollLeft值。
</div>
</div>
<input type="button" value="点击我!" onclick="req()" style="border: 1px solid purple;height: 25px;"/>
</div>
</div>
<div style="width:30%;float:left;">
<ul style="list-style-type: none; line-height:30px;">结果:
<li>offsetTop : <span id="li1"></span></li>
<li>offsetLeft : <span id="li2"></span></li>
<li> scrollTop : <span id="li3"></span></li>
<li>scrollLeft : <span id="li4"></span></li>
</ul>
</div>
<div style="clear:both;"></div>
</body>
</html>

最新文章

  1. 【Matplotlib】详解图像各个部分
  2. Ubuntu安装node
  3. OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
  4. Fedora23Server配置
  5. python学习笔记-(九)模块
  6. Linux下查看系统版本号信息的方法(转)
  7. idoc 和 bapi 和 rfc 之间的区别
  8. linux 命令 第一波
  9. 信号量的操作——semop函数
  10. Android如何创建背景透明的Dialog
  11. 探索Android该Parcel机制(上)
  12. selenium之多线程启动grid分布式测试框架封装(三)
  13. SUI Mobile框架开发,android、ios表单遇到的问题
  14. python之smtplib发邮件
  15. 流API--流的映射
  16. 深度学习原理与框架- tf.nn.conv2d_transpose(反卷积操作) tf.nn.conv2d_transpose(进行反卷积操作) 对于stride的理解存在问题?
  17. vetur插件提示 [vue-language-server] Elements in iteration expect to have &#39;v-bind:key&#39; directives错误的解决办法
  18. vscode中iview的&lt;/Col&gt;标签报错问题
  19. 使用Jekyll在Github上搭建个人博客 - 环境搭建
  20. UVM环境(一)

热门文章

  1. 【转】C++中的位拷贝与值拷贝
  2. POJ 1064 Cable master(二分查找+精度)(神坑题)
  3. 16--Box2D使用(二、显示物理世界)
  4. DEDE首页调用{dede:field.content/}
  5. MapDB:专为Java设计的高性能的数据库
  6. Python一路走来 线程 进程
  7. C#中睡眠函数Sleep
  8. 使用typedef语句定义数组类型
  9. [每日一题JS] 正则表达式
  10. (摘)ORACLE DBA的职责