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 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
Mar 27 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
jQuery 名称冲突的解决方法
Apr 08 Javascript
node.js中的emitter.emit方法使用说明
Dec 10 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
Mar 18 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
vue登录路由验证的实现
Dec 13 Javascript
vue实现评价星星功能
Jun 30 Javascript
小程序实现列表展开收起效果
Jul 29 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分页类
2013/10/26 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
通过实例解析python and和or使用方法
2020/11/14 Python
中西医专业毕业生职业规划书
2014/02/24 职场文书
求职信怎么写范文
2014/05/26 职场文书
倡导文明标语
2014/06/16 职场文书
十佳青年事迹材料
2014/08/21 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
个人维稳承诺书
2015/05/04 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
聘任书的格式及模板
2019/10/28 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python