获取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 相关文章推荐
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
jQuery实现类似标签风格的导航菜单效果代码
Aug 25 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
轻松5句话解决JavaScript的作用域
Jul 15 Javascript
javascript轮播图算法
Oct 21 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
Dec 28 Javascript
使用puppeteer爬取网站并抓出404无效链接
Dec 20 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
微信小程序实现pdf、word等格式文件上传的方法
Sep 10 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
使用无限生命期Session的方法
2006/10/09 PHP
聊天室php&amp;mysql(三)
2006/10/09 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
php支付宝接口用法分析
2015/01/04 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
Python的高级Git库 Gittle
2014/09/22 Python
python中PIL安装简单教程
2016/04/21 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python贪吃蛇游戏代码
2020/04/18 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Django 开发环境配置过程详解
2019/07/18 Python
解析python的局部变量和全局变量
2019/08/15 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
幼师自荐信范文
2013/10/06 职场文书
入团者的自我评价分享
2013/12/02 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
个人存款证明书
2014/10/18 职场文书
英文慰问信范文
2015/03/24 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书