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 相关文章推荐
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
js日期相关函数总结分享
Oct 15 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
jQuery侧边栏实现代码
May 06 Javascript
jQuery+CSS实现简单切换菜单示例
Jul 27 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
React全家桶环境搭建过程详解
May 18 Javascript
vue+Element实现搜索关键字高亮功能
May 28 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
JavaScript前端实现压缩图片功能
Mar 06 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 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编程中八种常见的文件操作方式
2006/11/19 PHP
php实现的简单检验登陆类
2015/06/18 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
IE8 原生JSON支持
2009/04/13 Javascript
关于JavaScript的一些看法
2009/05/27 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
Python的re模块正则表达式操作
2016/05/25 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
python 经典数字滤波实例
2019/12/16 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
如何理解python面向对象编程
2020/06/01 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
2015年预备党员自我评价
2015/03/04 职场文书
薪资证明范本
2015/06/19 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
浅析Python实现DFA算法
2021/06/26 Python
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS