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 相关文章推荐
popdiv
Jul 14 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
JavaScript 计算笛卡尔积实例详解
Dec 02 Javascript
Bootstrap按钮组实例详解
Jul 03 Javascript
Vue导出页面为PDF格式的实现思路
Jul 31 Javascript
vue-property-decorator用法详解
Dec 12 Javascript
详解JavaScript修改注册表的方法
Jan 05 Javascript
JS Canvas接口和动画效果大全
Apr 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邮件专题
2006/10/09 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
vue实现简单图片上传
2020/06/30 Javascript
python类继承与子类实例初始化用法分析
2015/04/17 Python
Python如何实现文本转语音
2016/08/08 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
刊首寄语大全
2014/04/11 职场文书
组织鉴定材料
2014/06/02 职场文书
北京导游词
2015/02/12 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
2015年团支部工作总结
2015/04/03 职场文书
法人代表资格证明书
2015/06/18 职场文书