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 相关文章推荐
jQuery学习基础知识小结
Nov 25 Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
node.js中的http.response.getHeader方法使用说明
Dec 14 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
vue 实现小程序或商品秒杀倒计时
Apr 14 Javascript
超轻量级的js时间库miment使用解析
Aug 02 Javascript
vue 自定义组件的写法与用法详解
Mar 04 Javascript
JavaScript forEach中return失效问题解决方案
Jun 01 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
用PHP实现文件上传二法
2006/10/09 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
python自定义解析简单xml格式文件的方法
2015/05/11 Python
python requests使用socks5的例子
2019/07/25 Python
Python占用的内存优化教程
2019/07/28 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Django多数据库联用实现方法解析
2020/11/12 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
上班睡觉检讨书
2014/01/09 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
节约用电倡议书
2015/04/28 职场文书
2016年元旦致辞
2015/08/01 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python
python高温预警数据获取实例
2022/07/23 Python