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 相关文章推荐
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
javascript 实现map集合
Apr 03 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
谈谈JS中的!!
Dec 07 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
Angular6笔记之封装http的示例代码
Jul 27 Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
JS代码简洁方式之函数方法详解
Jul 28 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
splice slice区别
2006/10/09 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
详解js中==与===的区别
2017/01/08 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
Python struct.unpack
2008/09/06 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python中list初始化方法示例
2016/09/18 Python
Puppeteer使用示例详解
2019/06/20 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
工厂厂长的职责
2013/12/12 职场文书
模具数控专业自荐信
2014/01/27 职场文书
兵马俑导游词
2015/02/02 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书