获取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 相关文章推荐
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
javaScript arguments 对象使用介绍
Oct 18 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
用javascript将数据导入Excel示例代码
Sep 10 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
JavaScript微信定位功能实现方法
Nov 29 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
Jun 13 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
Oct 24 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
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
angularjs基础教程
2014/12/25 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
python转换摩斯密码示例
2014/02/16 Python
Zabbix实现微信报警功能
2016/10/09 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
初中同学聚会邀请函
2014/02/03 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
大客户经理岗位职责
2015/04/09 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书