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 相关文章推荐
ie8下修改input的type属性报错的解决方法
Sep 16 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
Dec 04 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
原生js获取元素样式的简单方法
Aug 06 Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
vue.js获得当前元素的文字信息方法
Mar 09 Javascript
JavaScript数组方法的错误使用例子
Sep 13 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 Javascript
JS对日期操作封装代码实例
Nov 08 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文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
python中类的一些方法分析
2014/09/25 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
医院总经理职责
2013/12/26 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
加工操作管理制度
2014/01/19 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
股权转让协议书
2014/04/12 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
小学重阳节活动总结
2015/03/24 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技