当前位置: 首页 > news >正文

【转】js 获取浏览器高度和宽度值(多浏览器)

本文转自:脚本之家, http://www.jb51.net/article/19844.htm
js获取浏览器高度和宽度值,尽量的考虑了多浏览器。
 
图片 
IE中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
FireFox中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
Opera中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
没有定义W3C的标准,则
IE为:
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
Opera为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)


网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
实现代码
< !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"> 
</meta></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> 
View Code

 

相关文章:

  • XML注释导致VS2005崩溃
  • Bugtags,最适合移动应用的智能 Bug 管理系统
  • Java开发
  • Git技巧:右键菜单怎么去除?
  • RTMFP vs RTMP
  • Linux Distribution / ROM
  • android Git命令家底儿及Git数据通信原理详解
  • directsound抓取麦克风PCM数据封装类
  • spring 下载地址
  • ArrayList底层实现
  • shell脚本替换文件中字符
  • MVC Html.AntiForgeryToken() 防止CSRF攻击
  • Codeforces Round #352 (Div. 2)
  • 工程云存储软件介绍
  • STM8操作LCD5110总结
  • 自己简单写的 事件订阅机制
  • 345-反转字符串中的元音字母
  • FineReport中如何实现自动滚屏效果
  • JavaScript实现分页效果
  • Less 日常用法
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • PaddlePaddle-GitHub的正确打开姿势
  • SQLServer之创建数据库快照
  • vue:响应原理
  • Webpack 4x 之路 ( 四 )
  • 闭包,sync使用细节
  • 初识 beanstalkd
  • 数据仓库的几种建模方法
  • 阿里云重庆大学大数据训练营落地分享
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • (ZT)出版业改革:该死的死,该生的生
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .a文件和.so文件
  • .describe() python_Python-Win32com-Excel
  • .NET BackgroundWorker
  • .NET CORE Aws S3 使用
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Core跨平台微服务学习资源
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net知识和学习方法系列(二十一)CLR-枚举
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [android] 看博客学习hashCode()和equals()
  • [C++]四种方式求解最大子序列求和问题
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [go 反射] 进阶
  • [hdu 2896] 病毒侵袭 [ac自动机][病毒特征码匹配]
  • [LeetCode]Reverse Linked List II