js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码


Posted in Javascript onDecember 17, 2012

获取浏览器窗口的可视区域高度和宽度,滚动条高度有需要的朋友可参考一下。
IE中,浏览器显示窗口大小只能以下获取: 代码如下复制代码

document.body.offsetWidth 
document.body.offsetHeight

在声明了DOCTYPE的浏览器中,可以用以下来获取浏览器显示窗口大小: 代码如下复制代码
document.documentElement.clientWidth 
document.documentElement.clientHeight

IE,FF,Safari皆支持该方法,opera虽支持该属性,但是返回的是页面尺寸;
同时,除了IE以外的所有浏览器都将此信息保存在window对象中,可以用以下获取: 代码如下复制代码
window.innerWidth 
window.innerHeight

整个网页尺寸一般获得方法 代码如下复制代码
document.body.scrollWidth 
document.body.scrollHeight

屏幕分辨率高度一般获得方法 代码如下复制代码
window.screen.height 
window.screen.width

总结一下实例
function getViewSizeWithoutScrollbar(){//不包含滚动条 
return { 
width : document.documentElement.clientWidth, 
height: document.documentElement.clientHeight 
} 
} 
function getViewSizeWithScrollbar(){//包含滚动条 
if(window.innerWidth){ 
return { 
width : window.innerWidth, 
height: window.innerHeight 
} 
}else if(document.documentElement.offsetWidth == document.documentElement.clientWidth){ 
return { 
width : document.documentElement.offsetWidth, 
height: document.documentElement.offsetHeight 
} 
}else{ 
return { 
width : document.documentElement.clientWidth + getScrollWith(), 
height: document.documentElement.clientHeight + getScrollWith() 
} 
} 
}

IE,FireFox 差异如下:
IE6.0、FF1.06+: 
clientWidth = width + padding 
clientHeight = height + padding 
offsetWidth = width + padding + border 
offsetHeight = height + padding + border 
IE5.0/5.5: 
clientWidth = width - border 
clientHeight = height - border 
offsetWidth = width 
offsetHeight = height

另附个人最常用的获取整页宽高的方法(需要jquery框架) 代码如下复制代码
$(document).width() < $('body').width() ? $(document).width() : $('body').width(); 
$(document).height() < $('body').height() ? $(document).height() : $('body').height();

alert($(window).height()); //浏览器时下窗口可视区域高度
alert($(document).height()); //浏览器时下窗口文档的高度
alert($(document.body).height());//浏览器时下窗口文档body的高度
alert($(document.body).outerHeight(true));//浏览器时下窗口文档body的总高度 包括border padding margin
alert($(window).width()); //浏览器时下窗口可视区域宽度
alert($(document).width());//浏览器时下窗口文档对于象宽度
alert($(document.body).width());//浏览器时下窗口文档body的高度
alert($(document.body).outerWidth(true));//浏览器时下窗口文档body的总宽度 包括border padding margin

alert($(document).scrollTop()); //获取滚动条到顶部的垂直高度
alert($(document).scrollLeft()); //获取滚动条到左边的垂直宽度

Javascript 相关文章推荐
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
jquery实现二级导航下拉菜单效果
Dec 18 Javascript
jQuery定义插件的方法
Dec 18 Javascript
微信小程序 教程之条件渲染
Oct 18 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
JS动态图片的实现方法完整示例
Jan 13 Javascript
国内常用的js类库大全(CDN公共库)
Jun 24 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 #Javascript
IE不支持getElementsByClassName最终完美解决方案
Dec 17 #Javascript
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 #Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 #Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
Dec 17 #Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
Dec 17 #Javascript
如何让页面在打开时自动刷新一次让图片全部显示
Dec 17 #Javascript
You might like
开发大型 PHP 项目的方法
2007/01/02 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP微信API接口类
2016/08/22 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
设置python3为默认python的方法
2018/10/31 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
建筑安全员岗位职责
2014/03/13 职场文书
销售提升方案
2014/06/07 职场文书