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 相关文章推荐
分析 JavaScript 中令人困惑的变量赋值
Aug 13 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
Dec 21 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
jQuery取id有.的值的方法
May 21 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
vue.js中Vue-router 2.0基础实践教程
May 08 Javascript
Node.js  REPL (交互式解释器)实例详解
Aug 06 Javascript
新版小程序登录授权的方法
Dec 12 Javascript
小程序和web画三角形实现解析
Sep 02 Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 Javascript
uniapp微信小程序:key失效的解决方法
Jan 20 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
学习python (1)
2006/10/31 Python
python连接MySQL数据库实例分析
2015/05/12 Python
python的多重继承的理解
2017/08/06 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
广告学专业推荐信范文
2013/11/23 职场文书
大家检讨书5000字
2014/02/03 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技