获取JS中网页各种高宽与位置的方法总结


Posted in Javascript onJuly 27, 2016

screen对象

获取屏幕的高宽(分辨率)

screen.width     //屏幕的宽
screen.height    //屏幕的高
screen.availWidth  //屏幕可用宽度  屏幕的像素高度减去系统部件高度之后的值
screen.availHeight  //屏幕可用高度  屏幕的像素宽度减去系统部件宽度之后的值

window对象

获得窗口位置及大小

window.screenTop   //窗口顶部距屏幕顶部的距离
window.screenLeft  //窗口左侧距屏幕左侧的距离
window.innerWidth  //窗口中可视区域(viewpoint)的宽度
  alert(window.innerWidth); //chrome 1366 ff 1366 ie 1366
window.innerHeight  //窗口中可视区域(viewpoint)的高度 该值与浏览器是否显示菜单栏等因素有关
  alert(window.innerHeight); //chrome 643 ff 657 ie 673
window.outerWidth  //浏览器窗口本身的宽度(可视区域宽度+浏览器边框宽度)
  alert(window.outerWidth); //chrome 1366 ff 1382 ie 1382 
  //说明chrome在最大化时浏览器窗口没有边框宽度,非最大化时有8px边框
  //ff和ie上下左右有8px的边框宽度
window.outerHeight  //浏览器窗口本身的高度
  alert(window.outerHeight); //chrome 728 ff 744 ie 744

element对象

在介绍element对象各种高宽之前有必要解释一下盒模型
默认盒模型 box-sizing:content-box;

获取JS中网页各种高宽与位置的方法总结

boxWidth = 2*margin + 2*border + 2*padding + width
boxHeight = 2*margin + 2*border + 2*padding + height

当不出现滚动条时

body{margin:0;}
#demo{
  width:100px;
  height:100px;
  padding:10px;
  border:20px;
  margin:30px;
  background-color:red;
}
<div id="demo">123456789 123456789</div>

clientWidth:在页面上返回内容的可视宽度(不包括边框,边距或滚动条)

clientHeight:在页面上返回内容的可视高度(不包括边框,边距或滚动条)

clientWidth = 2*padding + width - scrollbarWidth   
console.log(document.getElementById('demo').clientWidth); //120 此时scrollbarWidth=0
clientHeight = 2*padding + height - scrollbarHeight 
console.log(document.getElementById('demo').clientHeight); //120 此时scrollbarWidth=0

offsetWidth:返回元素的宽度包括边框和填充,但不包括边距

offsetHeight:返回元素的高度包括边框和填充,但不包括边距

offsetWidth = 2*border + 2*padding + width 
console.log(document.getElementById('demo').offsetWidth)  //160
offsetHeight = 2*border + 2*padding + height 
console.log(document.getElementById('demo').offsetHeight)  //160

offsetLeft: 获取对象相对于版面或由 offsetLeft属性指定的父坐标的计算左侧位置
offsetTop: 获取对象相对于版面或由 offsetTop属性指定的父坐标的计算顶端位置

console.log(document.getElementById('demo').offsetLeft)  //30
console.log(document.getElementById('demo').offsetTop)  //30

获取JS中网页各种高宽与位置的方法总结

当出现滚动条时

body{
  margin:0;
  padding:20px;
  width:1000px;
  height:500px;
}
<div id="demo">123456789123456789</div>

scrollWidth: 返回元素的整个宽度(包括带滚动条的隐蔽的地方)

scrollHeight: 返回整个元素的高度(包括带滚动条的隐蔽的地方)

scrollWidth = 2*padding + width  
console.log(document.body.scrollWidth)  //1040
scrollHeight = 2*padding + width  
console.log(document.body.scrollHeight)  //540

scrollTop: 向下滑动滚动块时元素隐藏内容的高度。不设置时默认为0,其值随着滚动块滚动而变化

scrollLeft: 向右滑动滚动块时元素隐藏内容的宽度。不设置时默认为0,其值随着滚动块滚动而变化

event对象

Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。

event.pageX:相对整个页面的坐标,以页面的左上角为坐标原点到鼠标所在点的水平距离(IE8不支持)

event.pageY:相对整个页面的坐标,以页面的左上角为坐标原点到鼠标所在点的垂直距离(IE8不支持)

event.clientX:相对可视区域的坐标,以浏览器可视区域左上角为坐标原点到鼠标所在点的水平距离

event.clientY:相对可视区域的坐标,以浏览器可视区域左上角为坐标原点到鼠标所在点的垂直距离

event.screenX:相对电脑屏幕的坐标,以屏幕左上角为坐标原点到鼠标所在点的水平距离

event.screenY:相对电脑屏幕的坐标,以屏幕左上角为坐标原点到鼠标所在点的垂直距离

event.offsetX:相对于自身的坐标,以自身的padding左上角为坐标原点到鼠标所在点的水平距离

event.offsetY:相对于自身的坐标,以自身的padding左上角为坐标原点到鼠标所在点的水平距离

获取JS中网页各种高宽与位置的方法总结

总结

以上就是获取JS中网页各种高宽与位置的方法总结,对大家学习JS的时候提供了方便,有需要的小伙伴们可以参考学习。

Javascript 相关文章推荐
JavaScript Cookie 直接浏览网站分网址
Dec 08 Javascript
jquery zTree异步加载简单实例分享
Feb 05 Javascript
调用innerHTML之后onclick失效问题的解决方法
Jan 28 Javascript
jquery选择器大全 全面详解jquery选择器
Mar 06 Javascript
js 实现的可折叠留言板(附源码下载)
Jul 01 Javascript
node.js中的fs.truncateSync方法使用说明
Dec 15 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
javascript容错处理代码(屏蔽js错误)
Jan 20 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 #Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
Jul 27 #Javascript
详解Angular开发中的登陆与身份验证
Jul 27 #Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
Jul 27 #Javascript
jQuery+CSS实现简单切换菜单示例
Jul 27 #Javascript
AngularJS 指令详细介绍
Jul 27 #Javascript
js中遍历Map对象的方法
Jul 27 #Javascript
You might like
PHP常用的三种设计模式汇总
2016/08/28 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
JS时间特效最常用的三款
2015/08/19 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
Python中functools模块的常用函数解析
2016/06/30 Python
python读取oracle函数返回值
2016/07/18 Python
Python实现读取json文件到excel表
2017/11/18 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
python获取array中指定元素的示例
2019/11/26 Python
Python hmac模块使用实例解析
2019/12/24 Python
thinkphp5 路由分发原理
2021/03/18 PHP
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
公司营业员的自我评价
2014/03/04 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
财会专业大学生求职信
2014/09/26 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
管理失职检讨书
2015/05/05 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis
MySQL存储过程及语法详解
2022/08/05 MySQL