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小框架 fly javascript framework
Nov 26 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
js 中的switch表达式使用示例
Jun 03 Javascript
javascript实现根据身份证号读取相关信息
Dec 17 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
Mar 04 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
Aug 17 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
JavaScript之Vue.js【入门基础】
Dec 06 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
代码整洁之道(重构)
Oct 25 Javascript
Vue关于组件化开发知识点详解
May 13 Javascript
JavaScript实现栈结构详细过程
Dec 06 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合并数组+与array_merge的区别分析
2010/08/01 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
详解Python import方法引入模块的实例
2017/08/02 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
Python实现Kmeans聚类算法
2020/06/10 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
python微信公众号开发简单流程实现
2020/03/09 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
施工工地安全标语
2014/06/07 职场文书
舞蹈专业求职信
2014/06/13 职场文书
优秀护士事迹材料
2014/12/25 职场文书
个人求职自荐信范文
2015/03/06 职场文书
python for循环赋值问题
2021/06/03 Python
Win10 Anaconda安装python-pcl
2022/04/29 Servers