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类中获取外部函数名的方法与代码
Sep 12 Javascript
php,js,css字符串截取的办法集锦
Sep 26 Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 Javascript
JS实现json对象数组按对象属性排序操作示例
May 18 Javascript
Vue动画事件详解及过渡动画实例
Feb 09 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
echarts实现晶体球面投影的实例教程
Oct 10 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
php skymvc 一款轻量、简单的php
2011/06/28 PHP
php中异常处理方法小结
2015/01/09 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
详解php反序列化
2020/06/10 PHP
js 替换
2008/02/19 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
Cookie 小记
2010/04/01 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
Python版名片管理系统
2018/11/30 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Python sorted排序方法如何实现
2020/03/31 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
求职信模板标准格式范文
2014/02/23 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
读书月活动方案
2014/05/22 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
工作态度怎么写
2015/06/25 职场文书
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android