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 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
js中如何把字符串转化为对象、数组示例代码
Jul 17 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
jquery序列化方法实例分析
Jun 10 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
Oct 26 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 Javascript
基于bootstrap实现收缩导航条
Mar 17 Javascript
vue2.0实战之基础入门(1)
Mar 27 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
Mar 15 Javascript
对vue里函数的调用顺序介绍
Mar 17 Javascript
Bootstrap实现省市区三级联动(亲测可用)
Jul 26 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开发负载均衡指南
2010/07/17 PHP
PHP源码之explode使用说明
2011/08/05 PHP
PHP实现事件机制的方法
2015/07/10 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
Javascript的闭包
2009/12/31 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
Vue实现手机计算器
2020/08/17 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python 公共方法汇总解析
2019/09/16 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
Python request post上传文件常见要点
2020/11/20 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
数字化校园建设方案
2014/05/03 职场文书
防沙治沙典型材料
2014/05/07 职场文书