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 相关文章推荐
一个简单的网站访问JS计数器 刷新1次加1次访问
Sep 20 Javascript
jquery动态增加删减表格行特效
Nov 20 Javascript
常用原生JS兼容性写法汇总
Apr 27 Javascript
JavaScript数组的定义及数字操作技巧
Jun 06 Javascript
js获取form表单所有数据的简单方法
Aug 18 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
基于Node.js搭建hexo博客过程详解
Jun 25 Javascript
9个JavaScript日常开发小技巧
Oct 06 Javascript
使用jQuery实现购物车
Oct 29 jQuery
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 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
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
初步认识Python中的列表与位运算符
2015/10/12 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
基于Python绘制个人足迹地图
2020/06/01 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
医学院护理专业应届生求职信
2013/11/12 职场文书
生日邀请函范文
2014/01/13 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
Python实现照片卡通化
2021/12/06 Python