js 获取屏幕各种宽高的方法(浏览器兼容)


Posted in Javascript onMay 15, 2013

屏幕的有效宽高:

window.screen.availHeight
window.screen.availWidth

 

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth
HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

IE,FireFox 差异如下:

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5:
clientWidth = width - border

clientHeight = height - border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关) 

-------------------

技术要点
本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。

要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在IE下需要深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。

Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。

Document对象的body属性对应HTML文档的标签。Document对象的documentElement属性则表示HTML文档的根节点。

document.body.clientHeight表示HTML文档所在窗口的当前高度。document.body. clientWidth表示HTML文档所在窗口的当前宽度。

源程序解读

(1)程序首先建立一个表单,包含两个文本框,用于显示窗口当前的宽度和高度,并且,其数值会随窗口大小的改变而变化。

(2)在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeight,用于保存窗口的高度值和宽度值。

(3)然后,在函数findDimensions ( )中,使用window.innerHeight和window.innerWidth得到窗口的高度和宽度,并将二者保存在前述两个变量中。

(4)再通过深入Document内部对body进行检测,获取窗口大小,并存储在前述两个变量中。

(5)在函数的最后,通过按名称访问表单元素,结果输出至两个文本框。

(6)在JavaScript代码的最后,通过调用findDimensions ( )函数,完成整个操作。

Javascript 相关文章推荐
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
Mar 13 Javascript
TypeScript Type Innference(类型判断)
Mar 10 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
小程序开发基础之view视图容器
Aug 21 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
vue render函数动态加载img的src路径操作
Oct 26 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
Nov 02 Javascript
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
May 15 #Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 #Javascript
JQuery for与each性能比较分析
May 14 #Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
May 14 #Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
May 14 #Javascript
使用js检测浏览器的实现代码
May 14 #Javascript
Javascript 垃圾收集机制介绍理解
May 14 #Javascript
You might like
实用函数8
2007/11/08 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
python中图像通道分离与合并实例
2020/01/17 Python
德国户外商店:eXXpozed
2020/07/25 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
求职毕业生自荐书
2014/02/08 职场文书
政治表现评语
2014/05/04 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
介绍信模板
2015/01/31 职场文书
海洋天堂观后感
2015/06/05 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书