美文网首页
聊聊各种宽宽高高的获取

聊聊各种宽宽高高的获取

作者: Primers | 来源:发表于2017-10-13 21:41 被阅读0次

所讨论的环境,都是在有DTD条件下的。

首先,理解”window“、“ document.body ”和“ document.documentElement ”。

window 它表示浏览器窗口。
大小为边界与边界间包围的范围(含滚动条)
body 是dom中的节点,即<body>。
doctmentElement 则是dom中的根节点,即<html>。在未进行设置时,与浏览器可见区域同大小(不含滚动条)

获取浏览器窗口尺寸的方法

(包含滚动条)

  • 对于IE 9+、Chrome、Firefox、Opera 以及 Safari:
    window.innerHeight - 浏览器窗口边界之间的高度(滚动条于边界内)
    window.innerWidth- 浏览器窗口边界之间的宽度(滚动条于边界内)

(不包含滚动条)

  • jQ
    $(window).height();
    $(window).width();
  • Js
    document.documentElement.clientHeight
    document.documentElement.clientWidth
    或者(需要在没有设置body尺寸的情况下)
    document.body.clientHeight
    document.body.clientWidth

Js下有client /offset /scrollHeight(Width)三种尺寸

聊聊他们的区别,为了方便理解,我给它们取个中文名。

  • clientHeight - 室内空间尺寸(墙以内的空间)
    高度不包括滚动条、margin和边框,但是包括padding。
  • offsetHeight - 房子尺寸(包括墙的厚度)
    可以理解为整体高度,除了外边框,其他都包含。
  • scrollHeight - 我称他为展开空间,比较不好理解。
    一般情况下(没被子元素撑开),最小值就是clientHeight。
    当子元素过大而出现滚动条的情况,值为子元素所占高度+padding值。
    即相当于子元素会撑开父元素而不是溢出,这种情况下的clientHeight。

另外还有几种Left和Top

  • offsetLeft和offsetTop:返回元素的X和Y坐标。offsetParent属性指定这个属性相对的父元素。
  • clientLeft和clientTop:没什么用,返回内边距的外边缘和边框的外边缘之间水平距离和垂直距离。
  • scrollLeft和scrollTop:是滚动条位置。

jQ下有height ()、innerHeight () 和outHeight ()

  • height():其高度范围是所匹配元素的高度height;
  • innerheight():其高度范围height+padding,相当于Js的clientHeight;
  • outerheight():其高度范围是height+padding+border;
    outerheight(true):其高度范围是height+padding+border+margin;

获取其他种类的宽高

$(window).height();            //浏览器当前窗口可视区域高度
$(document).height();          //浏览器当前窗口文档的高度
$(document.body).height();     //浏览器当前窗口文档body的高度
$(document.body).outerHeight(true);  
//浏览器当前窗口文档body的总高度 包括border padding margin

//网页可见区域宽(body),包括border
document.body.offsetWidth;
document.body.offsetHeight;

//网页正文全文高,包括有滚动条时溢出的不可见区域
document.body.scrollWidth;
document.body.scrollHeight;

//网页被卷去的Top、Left(滚动条)
document.body.scrollTop;
document.body.scrollLeft;

//浏览器距离Top、Left
window.screenTop;
window.screenLeft;

//屏幕分辨率的宽高
window.screen.height;
window.screen.width;

//屏幕可用工作区的宽
window.screen.availHeight;
window.screen.availWidth;

另外这里还有一份详细的实验报告→脚本之家

相关文章

  • 聊聊各种宽宽高高的获取

    所讨论的环境,都是在有DTD条件下的。 首先,理解”window“、“ document.body ”和“ doc...

  • 说故宫·宫墙柳

    紫禁城最能让人们亲近的,是它的宽宽的护城河和它的高高的灰色的城墙,紫禁城最能拒绝人们的,也是它的宽宽的护城河和它的...

  • 写信给自己

    想写封信给自己,聊聊烦恼,说说脏话,撇着嘴笑笑。 想写封信给自己,聊聊心事,宽宽焦虑,咧着嘴笑笑。 想写封信给自己...

  • 宽宽

    许久未见的宽宽终于长高了点,宽宽和一般男孩那样聪明,调皮。虽然现在是个读三年级11岁的孩子,但身高如五六岁般孩子,...

  • 获取各种节点

    firstChild (firstElementChild) lastChild (lastElementChil...

  • 终会远去

    《终会远去》 站在高高的楼顶 天上 一轮璀璨的红 我看着 楼前宽宽的十字路口 各色的车 驶来...

  • 数据库连接池DruidDataSource源码分析

    聊聊Druid(一)-- 配置与初始化聊聊Druid(二) -- 获取连接聊聊Druid(三) -- 连接的销毁,...

  • 开心的一天

    星期六我早上我们到奶奶家去玩,我们在路上看到了白白的鸽子 、欢快的小鸟 、高高的松树、宽宽的马路 、川流...

  • 大树宽宽

    大树宽宽,鸟儿不知道在哪里建巢,大树来帮忙。鸟儿说,大树是我的家。 大树凉凉,大家不知道去哪里乘凉,大树有...

  • 我的家乡

    我的家乡在桂平,那里有宽宽的街道,高高的楼房,还有一个有名的旅游景点叫西山。那里巨石众多,形态万千。加之绿荫遍地,...

网友评论

      本文标题:聊聊各种宽宽高高的获取

      本文链接:https://www.haomeiwen.com/subject/yqszyxtx.html