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 相关文章推荐
关于setInterval、setTimeout在jQuery中的使用注意事项
Sep 28 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
Sep 25 Javascript
关闭ie窗口清除Session的解决方法
Jan 10 Javascript
DIV始终居中的js代码
Feb 17 Javascript
通过Jquery的Ajax方法读取将table转换为Json
May 31 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
javascript 开发之百度地图使用到的js函数整理
May 19 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
vue watch自动检测数据变化实时渲染的方法
Jan 16 Javascript
js如何找出字符串中的最长回文串
Jun 04 Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 Javascript
JS画布动态实现黑客帝国背景效果
Nov 08 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缓存类实例
2014/07/18 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
Python操作SQLite简明教程
2014/07/10 Python
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python数据类型之List列表实例详解
2019/05/08 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
求职自荐信怎么写
2015/03/04 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
logback如何自定义日志存储
2021/08/30 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android