js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法


Posted in Javascript onNovember 21, 2016

如下所示:

screen.width
screen.height


screen.availHeight //获取去除状态栏后的屏幕高度
screen.availWidth //获取去除状态栏后的屏幕高度

一、通过浏览器获得屏幕的尺寸

二、获取浏览器窗口内容的尺寸

//高度
window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight

//宽度
window.innerWidth || document.documentElement.clientWidth || document.body.clientWidht

/ * 
 * window.innerHeight  FF/CH 支持,获取窗口尺寸。
 * document.documentElement.clientHeight  IE/CH支持
 * document.body.client  通过body元素获取内容的尺寸

* /

三、滚动条支持的差异性

不进行任何滚动条更改的页面,Firefox/IE 默认认为HTML元素具有滚动条属性。而body不具有。

但Chrome 则认为body是具有滚动条属性的。

因此兼容性的写法是:

document.documentElement.scrollTop || document.body.scrollTop

四、获取元素的尺寸

elemnt.offsetWidth
elemnt.offsetHeight

// 仅IE5不支持,放心使用吧

说明图:

js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法

* offsetWidth 可以获取元素的高度尺寸,包括:width + padding[left,right] + border[left,right]

* offsetHeight 可以获取元素的宽度尺寸,包括:height + padding[top,bottom] + bottom[top,bottom]

五、元素的偏移属性

element.offsetTop //获取元素与其偏移参考父元素顶部的间隔距离
element.offsetLeft //获取元素与其偏移参考父元素左边的间隔距离
element.offsetParent //获取当前元素的参考父元素

*offsetTop 可以获取元素距其上一级的偏移参考父元素顶部的距离。包括:margin[top] + top

*offsetLeft 可以获取元素距其上一级的偏移参考父元素左边的距离。包括:margin[left] + left

*注意的是offsetParent在IE6/7,与IE8/FF/CH中存在兼容性问题:

在FF/Chrome/IE8+ :

如果当前元素有定位,则偏移参考父元素是其上一级的最近的那个定位元素。

如果当前元素没有定位,则默认以body为最终的参考父元素。

在IE6/7:

不论有没有定位,其偏移参考父元素都是其上一级的父元素。

总的来说:

不论是FF/Chrome还是IE,最终的参考父元素都是body元素, 因此兼容的方法就是获取当前元素到body元素的偏移位置值。

兼容性写法

function getOffestValue(elem){

    var Far = null;
    var topValue = elem.offsetTop;
    var leftValue = elem.offsetLeft;
    var offsetFar = elem.offsetParent;

    while(offsetFar){
      alert(offsetFar.tagName)
      topValue += offsetFar.offsetTop;
      leftValue += offsetFar.offsetLeft;
      Far = offsetFar;
      offsetFar = offsetFar.offsetParent;
    }
    return {'top':topValue,'left':leftValue,'Far':Far}
  }

/*
 * top 当前元素距离body元素顶部的距离。
 * left 当前元素距离body元素左侧的距离。
 * Far 返回最终的参考父元素。
*/

以上这篇js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 可拖拽的窗体控件实现代码
Mar 21 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
Oct 24 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 Javascript
js 跳出页面的frameset框架示例介绍
Dec 23 Javascript
JQuery对表格进行操作的常用技巧总结
Apr 23 Javascript
js实现页面跳转重定向的几种方式
May 29 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
jQuery中DOM节点的删除方法总结(超全面)
Jan 22 Javascript
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
angular2系列之路由转场动画的示例代码
Nov 09 Javascript
javascript实现文件拖拽事件
Mar 29 Javascript
JavaScript实现网页计算器功能
Oct 29 Javascript
JS中判断null的方法分析
Nov 21 #Javascript
javascript 利用arguments实现可变长参数
Nov 21 #Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 #Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 #Javascript
AngularJS Phonecat实例讲解
Nov 21 #Javascript
浅谈React 属性和状态的一些总结
Nov 21 #Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
Nov 21 #Javascript
You might like
基于PHP技术开发客服工单系统
2016/01/06 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
numpy基础教程之np.linalg
2019/02/12 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
函数指针的定义是什么
2016/08/14 面试题
Ajax的优点和缺点
2014/11/21 面试题
库房主管岗位职责
2013/12/31 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
营业用房租赁协议书
2014/11/26 职场文书
内勤岗位职责
2015/02/10 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
医院党建工作总结2015
2015/05/26 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
Python 如何实现文件自动去重
2021/06/02 Python