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 相关文章推荐
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 Javascript
基于jQuery的倒计时实现代码
May 30 Javascript
利用jquery包将字符串生成二维码图片
Sep 12 Javascript
js document.write()使用介绍
Feb 21 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
Sep 09 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
Aug 25 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
理解javascript中try...catch...finally
Dec 25 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
Node.js实现断点续传
Jun 23 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
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
2016/08/16 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
详解webpack-dev-server的简单使用
2018/04/02 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
python并发编程之线程实例解析
2017/12/27 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
杭州时比特电子有限公司SQL
2013/08/22 面试题
护理专科毕业推荐信
2013/11/10 职场文书
微博营销计划书
2014/01/10 职场文书
工作睡觉检讨书
2014/02/25 职场文书
初中优秀学生评语
2014/12/29 职场文书
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript