获取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 iframe编程相关代码
Dec 28 Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 Javascript
jQuery实现仿Google首页拖动效果的方法
May 04 Javascript
AngularJS自定义插件实现网站用户引导功能示例
Nov 07 Javascript
vue实现留言板todolist功能
Aug 16 Javascript
探究react-native 源码的图片缓存问题
Aug 24 Javascript
JavaScript的词法结构精华篇
Oct 17 Javascript
详解js删除数组中的指定元素
Oct 31 Javascript
js+html实现周岁年龄计算器
Jun 25 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
Vue中fragment.js使用方法小结
Feb 17 Javascript
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
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 number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
php模板引擎技术简单实现
2016/03/15 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
原生js实现分页效果
2020/09/23 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
python回调函数用法实例分析
2015/05/09 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
个人自荐信
2013/12/05 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
小学班主任研修日志
2015/11/13 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
初中政治教学反思
2016/02/23 职场文书
Python采集股票数据并制作可视化柱状图
2022/04/04 Python
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技