原文地址:→传送门

window相关宽高属性

1. window.outerHeight (窗口的外层的高度) / window.outerWidth (窗口的外层的宽度)
  • window.outerHeight获取整个浏览器窗口的高度(单位:像素),包括侧边栏(如果存在)、窗口镶边(window chrome)和窗口调正边框。包含调试窗及浏览器边框
  • window.outerWidth表示整个浏览器窗口的宽度,包括侧边栏(如果存在)、窗口镶边(window chrome)和调正窗口大小的边框。包含调试窗及浏览器边框

参考链接:

window.outerHeight -MDN

window.outerWidth-MDN

2. window.innerHeight (浏览器窗口的视口的高度)和 window.innerWidth
  • window.innerHeight浏览器窗口的视口(viewport)高度(以像素为单位),如果存在水平滚动条,则包括它。不包含调试窗及浏览器边框
  • window.innerWidth浏览器视口(viewport)宽度(单位:像素),如果存在垂直滚动条则包括它。不包含调试窗及浏览器边框

参考链接:

window.innerHeight - MDN

window.innerWidth - MDN

3. window.screen.widthwindow.screen.height

注:在获取值时可不加window.前缀

  • window.screen.width声明了显示当前浏览器的屏幕的宽度,以像素计
  • window.screen.height声明了显示当前浏览器的屏幕的高度,以像素计

参考链接:

window.screen - MDN

window.screen - MDN

4. window.screen.availHeightwindow.screen.availWidth
  • window.screen.availHeight声明了显示浏览器的屏幕的可用高度,以像素计。除去我们底部任务栏外的屏幕高度
  • window.screen.availWidth声明了显示浏览器的屏幕的可用宽度,以像素计

参考链接:

window.screen - MDN

window.screen - MDN

5. window.screenTopwindow.screenLeft
  • 功能: 返回窗口的左上角在屏幕上的x坐标。该属性为只读属性。语法: window.screenLeft。注:在Firefox等浏览器中使用的是screenX属性。
  • 返回窗口的左上角在屏幕上的y坐标。该属性为只读属性。 语法: window.screenTop。注:在Firefox等浏览器中使用的是screenY属性。

参考链接:

window.screenTop

window.screenLeft

document下面的相关属性(offset/client/scroll)

与client相关属性

6. document.body.clientWidthelement.clientWidth
  • 表示元素的内部宽度,以像素计。该属性包括内边距,但不包括垂直滚动条(如果有的话)、边框和外边距。
  • 该属性值会被四舍五入为一个整数。如果你需要一个小数值,可使用 element.getBoundingClientRect()。
  • 语法:var intElemClientWidth = element.clientWidth;

参考链接:

Element.clientWidth - MDN

7. document.body.clientHeightelement.clientHeight
  • 返回元素内部的高度(单位像素),包含内边距,但不包括水平滚动条、边框和外边距。

参考链接:

element.clientHeight - MDN

8. document.body.clientLeftelement.clientLeft
  • 表示一个元素的左边框的宽度,以像素表示。如果元素的文本方向是从右向左(RTL, right-to-left),并且由于内容溢出导致左边出现了一个垂直滚动条,则该属性包括滚动条的宽度。

参考链接:

Element.clientLeft - MDN

9. document.body.clientTopelement.clientTop
  • 一个元素顶部边框的宽度(以像素表示)。不包括顶部外边距或内边距。

参考链接:

Element.clientTop

与offset相关属性

这一对属性指的是元素的border+padding+content的宽度和高度

10. document.body.offsetWidthelement.offsetWidth
  • border/padding/width三者的总宽度

参考链接:

HTMLElement.offsetWidth

11. document.body.offsetHeightelement.offsetHeight
  • border/padding/width三者的总高度,且是一个整数。

参考链接:

HTMLElement.offsetHeight

12. HTMLElement.offsetLeftHTMLElement.offsetTop

这两个属性是基于offsetParent的

  • 如果当前元素的父级元素没有进行CSS定位(position为absolute或relative),offsetParent为body.
  • 假如当前元素的父级元素中有CSS定位,offsetParent取最近的那个父级元素。
  • offsetLeft返回当前元素左上角相对于 HTMLElement.offsetParent 节点的左边界偏移的像素值。
  • offsetTop返回当前元素相对于其 offsetParent 元素的顶部的距离。
  • 在IE6/7中:
offsetLeft=(offsetParent的padding-left)+(当前元素的margin-left)
  • 在IE8/9/10及Chrome中:
offsetLeft=(offsetParent的margin-left)+(offsetParent的border宽度)+(offsetParent的padding-left)+(当前元素的margin-left)
  • 在FireFox中:
offsetLeft=(offsetParent的margin-left)+(当前元素的margin-left)+(offsetParent的padding-left)

参考链接:

HTMLElement.offsetLeft

HTMLElement.offsetTop

与scroll相关属性

13. document.body.scrollWidthdocument.body.scrollHeight

body与普通element不一样

  • 给定body宽高 < 浏览器窗口时:
scrollWidth = 浏览器窗口宽度
scrollHeight = 浏览器窗口高度
  • 给定body宽高大于浏览器窗口,且内容小于给定body宽高时:
scrollWidth = 给定的宽度 + body所有padding + body所有margin + body所有border
scrollHeight = 给定的高度 + body所有padding + body所有margin + body所有border
  • 给定body宽高大于浏览器窗口,且内容大于给定窗口时:
scrollWidth = 内容的宽度 + body所有padding + body所有margin + body所有border
scrollHeight = 内容的高度 + body所有padding + body所有margin + body所有border

参考链接:

Element.scrollWidth

14. element.scrollWidthelement.scrollHeight
  • 当无滚动条时:
scrollWidth = clientWidth = 元素宽度 + padding和
scrollHeight = clientHeight = 元素高度 + padding和
  • 当有滚动条时:
scrollWidth = 实际内容的宽度 + padding和
scrollHeight = 实际内容的高度 + padding和
15. document.body.scrollTopdocument.body.scrollLeft
  • 这对属性是可读写(可被重新赋值) 的
  • 指的是当元素其中的内容超出其宽高的时候,元素被卷起来的高和宽度。
  • 对于element元素同样适用
16. window.scrollYwindow.scrollX
  • window.scrollY 文档从顶部开始滚动过的像素值 / window.scrollX 文档从左侧开始滚动的像素值。

event中的五种坐标

  1. clientXclientY:相对于浏览器(可视区左上角0,0)的坐标

  2. screenXscreenY:相对于设备屏幕左上角(0,0)的坐标

  3. offsetXoffsetY:相对于事件源左上角(0,0)的坐标

  4. pageXpageY:相对于整个网页左上角(0,0)的坐标

参考来源:

JS中client/offset/scroll等的宽高解析的更多相关文章

  1. JS中的offset scroll event client

    一.offset 一般用来检测盒子的偏移.位移,都是只读属性,不能赋值 offsetWidth和offsetHeight表示的是:调用者盒子的宽和高,包括盒子自身的padding和border off ...

  2. DOM盒模型和位置 client offset scroll 和滚动的关系

    DOM盒模型和位置 client offset scroll 和滚动的关系 概览 在dom里面有几个描述盒子位置信息的值, pading border margin width height clie ...

  3. JS 中的offset、scroll、client总结

    经常碰到offset.scroll.client这几个关键字,每次都要各种实验,这里总结一下. 两张图镇楼,随时翻阅 1. offset offset 指偏移,包括这个元素在文档中占用的所有显示宽度, ...

  4. js的client、scroll、offset详解与兼容性

    clientWidth:可视区宽说明:样式宽+padding参考:js的client详解 scrollTop : 滚动条滚动距离说明:chrome下他会以为滚动条是文档元素的,所以需要做兼容:var ...

  5. JavaScript概念之screen/client/offset/scroll/inner/avail的width/left 分类: JavaScript HTML+CSS 2015-05-27 16:42 635人阅读 评论(0) 收藏

    原文地址:http://caibaojian.com/js-name.html JS中获取各种宽度和距离,常常让我们混淆,各种浏览器的不兼容让我们很头疼,现在就在说说js中有哪些宽度和距离. 1.名词 ...

  6. JS-特效 ~ 04. client对象、网页可视区域的宽高、client / offset / scroll 三大家族的区别、冒泡事件、事件委托、获取内嵌式和外链式属性getStyle(ele,attr) ;、缓动动画封装

    知识点: 模拟滚动条的解除事件问题 : event内置对象,包含 了大量事件: page兼容性: pageX || clientX + scool().top  : if (true === a)tr ...

  7. client,offset,scroll系列

    client(客户端),offset(偏移),scroll(滚动)1.client系列 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域到边框左部 ...

  8. client , offset , scroll 系列 及百度导航栏案例

    1. client 系列 示例 : <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  9. client offset scroll 之间的区别

    一.client 属性 值 clientWidth 元素被设置的宽度 + padding左右内间距 clientHeight 元素被设置的高度 + padding上下内间距 clientLeft 左 ...

随机推荐

  1. asp.netcore mvc 权限拦截

    1-背景介绍 需要做一个简单权限系统,基于 角色,用户,菜单 的模式 基于IActionFilter全局拦截,在内部跳转或者浏览器跳转的时候,拦截是成功的,当通过AJAX 请求的时候,页面就不会跳转 ...

  2. HDU 5464 Clarke and problem 动态规划

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5464 Clarke and problem  Accepts: 130  Submissions: ...

  3. ltnmp 3.0 发布,PHP 开发环境一键安装包

    PHP 开发环境一键安装包, 有个叫lnmp.这个ltnmp看起来更新比较多,开发比较频繁,包括的组件更多. 安装和使用教程:http://www.moqifei.com/ltnmp 标记一下.

  4. Haproxy + Rabbit 集群 简要介绍

    # 两台主机都安装上rabbitMQ yum install -y rabbitmq-server   # 两台主机都配置/etc/hosts文件 192.168.23.10 rabbitmq1 19 ...

  5. 【final】140字互评②

    按照产品发布顺序 nice!----约吧 我们的团队展示相对于上次的手足无措,有了一定进步.但是整体还是不那么流畅总结起来的缺点是: 1.发布时,摄像头不清晰 且抖动 我们没有把摄像头固定,并且为了让 ...

  6. CentOS系统iptables防火墙的启动、停止以及开启关闭端口的操作

    CentOS 配置防火墙操作实例(启.停.开.闭端口):注:防火墙的基本操作命令:查询防火墙状态:[root@localhost ~]# service   iptables status停止防火墙: ...

  7. ASP.NET 页面访问控制

    request常用对象和方法: @属性:1.quary string,获取通过URL路径传来的数据 2.Form,获取通过表单提交传输的数据 3.servervariables,获取Web服务器变量的 ...

  8. 【uoj#164】[清华集训2015]V 线段树维护历史最值

    题目描述 给你一个长度为 $n$ 的序列,支持五种操作: $1\ l\ r\ x$ :将 $[l,r]$ 内的数加上 $x$ :$2\ l\ r\ x$ :将 $[l,r]$ 内的数减去 $x$ ,并 ...

  9. 【bzoj5133】[CodePlus2017年12月]白金元首与独舞 并查集+矩阵树定理

    题目描述 给定一个 $n\times m$ 的方格图,每个格子有 ↑.↓.←.→,表示从该格子能够走到相邻的哪个格子.有一些格子是空着的,需要填上四者之一,需要满足:最终的方格图中,从任意一个位置出发 ...

  10. Tomcat+JDK安装和配置

    Tomcat+JDK安装和配置 一.打开FlashFXP软件,建立连接,选择需要的包,右击传输到 /home/guest中 二.进入到:cd /home/guest中,对tomcat包进行解压 三.将 ...