JS获取页面窗口大小的代码解读


Posted in Javascript onDecember 01, 2011

本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。
要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在IE下需要深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素<html>的尺寸,而不是<body>元素。
Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。
Document对象的body属性对应HTML文档的<body>标签。Document对象的documentElement属性则表示 HTML文档的根节点。
document.body.clientHeight表示HTML文档所在窗口的当前高度。document.body. clientWidth表示HTML文档所在窗口的当前宽度。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>请调整浏览器窗口</title> 
<meta http-equiv="content-type" content="text/html; charset=gb2312"> 
</head> 
<body> 
<h2 align="center">请调整浏览器窗口大小</h2><hr> 
<form action="#" method="get" name="form1" id="form1"> 
<!--显示浏览器窗口的实际尺寸--> 
浏览器窗口 的实际高度: <input type="text" name="availHeight" size="4"><br> 
浏览器窗口 的实际宽度: <input type="text" name="availWidth" size="4"><br> 
</form> 
<script type="text/javascript"> 
<!-- 
var winWidth = 0; 
var winHeight = 0; 
function findDimensions() //函数:获取尺寸 
{ 
//获取窗口宽度 
if (window.innerWidth) 
winWidth = window.innerWidth; 
else if ((document.body) && (document.body.clientWidth)) 
winWidth = document.body.clientWidth; 
//获取窗口高度 
if (window.innerHeight) 
winHeight = window.innerHeight; 
else if ((document.body) && (document.body.clientHeight)) 
winHeight = document.body.clientHeight; 
//通过深入Document内部对body进行检测,获取窗口大小 
if (document.documentElement && document.documentElement.clientHeight && 
document.documentElement.clientWidth) 
{ 
winHeight = document.documentElement.clientHeight; 
winWidth = document.documentElement.clientWidth; 
} 
//结果输出至两个文本框 
document.form1.availHeight.value= winHeight; 
document.form1.availWidth.value= winWidth; 
} 
findDimensions(); //调用函数,获取数值 
window.onresize=findDimensions; 
//--> 
</script> 
</body> 
</html>

运行该程序后,页面出现两个文本框,分别显示窗口当前的宽度和高度,。当调整浏览器窗口大小时,文本框中的数值会随之改变,分别是不同时刻窗口的大小。
源程序解读
(1)程序首先建立一个表单,包含两个文本框,用于显示窗口当前的宽度和高度,并且,其数值会随窗口大小的改变而变化。
(2)在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeight,用于保存窗口的高度值和宽度值。
(3)然后,在函数findDimensions ( )中,使用window.innerHeight和window.innerWidth得到窗口的高度和宽度,并将二者保存在前述两个变量中。
(4)再通过深入Document内部对body进行检测,获取窗口大小,并存储在前述两个变量中。
(5)在函数的最后,通过按名称访问表单元素,结果输出至两个文本框。
(6)在JavaScript代码的最后,通过调用findDimensions ( )函数,完成整个操作。
Javascript 相关文章推荐
Javascript this指针
Jul 30 Javascript
js实现数字每三位加逗号的方法
Feb 05 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
jquery实现input框获取焦点的方法
Feb 06 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
Vue通过ref父子组件拿值方法
Sep 12 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
Nov 04 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 #Javascript
jQuery 中使用JSON的实现代码
Dec 01 #Javascript
jquery中dom操作和事件的实例学习 下拉框应用
Dec 01 #Javascript
JS代码放在head和body中的区别分析
Dec 01 #Javascript
js获取浏览器的可视区域尺寸的实现代码
Nov 30 #Javascript
js取滚动条的尺寸的函数代码
Nov 30 #Javascript
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 #Javascript
You might like
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
python构建深度神经网络(续)
2018/03/10 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
Python文件读写常见用法总结
2019/02/22 Python
Python异常处理机制结构实例解析
2020/07/23 Python
python 6种方法实现单例模式
2020/12/15 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
史上最全面的Java面试题汇总!
2015/02/03 面试题
自荐信格式范文
2013/10/07 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
使用Python解决图表与画布的间距问题
2022/04/11 Python