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 表格隔行颜色
Dec 02 Javascript
javascript json2 使用方法
Mar 16 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
Jul 15 Javascript
jquery 倒计时效果实现秒杀思路
Sep 11 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
JQuery实现样式设置、追加、移除与切换的方法
Jun 11 Javascript
js+css实现超简洁的二级下拉菜单效果代码
Sep 07 Javascript
JavaScript实现二分查找实例代码
Feb 22 Javascript
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
Jul 12 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 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
解析yii数据库的增删查改
2013/06/20 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
Python设计模式之抽象工厂模式
2016/08/25 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
python三方库之requests的快速上手
2019/03/04 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
Python集合操作方法详解
2020/02/09 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
聚美优品广告词改编
2014/03/14 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
结婚十年感言
2015/07/31 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis