javascript获取网页各种高宽及位置的方法总结


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;

javascript获取网页各种高宽及位置的方法总结

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

javascript获取网页各种高宽及位置的方法总结

当出现滚动条时

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左上角为坐标原点到鼠标所在点的水平距离

javascript获取网页各种高宽及位置的方法总结

以上这篇javascript获取网页各种高宽及位置的方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JS实现的一个include函数
Jul 21 Javascript
jQuery过滤选择器:not()方法使用介绍
Apr 20 Javascript
node网页分段渲染详解
Sep 05 Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
JS实现多物体运动的方法详解
Jan 23 Javascript
vue如何进行动画的封装
Sep 26 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
基于iview的router常用控制方式
May 30 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
uniapp开发打包多端应用完整方法指南
Dec 24 Javascript
第一次接触神奇的Bootstrap表单
Jul 27 #Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 #Javascript
基于jQuery实现页面搜索功能
Mar 26 #Javascript
JS中的数组方法笔记整理
Jul 26 #Javascript
jQuery实现日期联动效果实例
Jul 26 #Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 #Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 #Javascript
You might like
php+mysql实现无限分类实例详解
2015/01/15 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
Python实现的拉格朗日插值法示例
2019/01/08 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
yy生日主持词
2014/03/20 职场文书
物理教育专业求职信
2014/06/25 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
Python机器学习之PCA降维算法详解
2021/05/19 Python
springboot+VUE实现登录注册
2021/05/27 Vue.js
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL