分清JavaScript中的各种“尺寸”和“位置”

1. 尺寸

(1) node.style.width/height

这个只能获取元素的内联style样式中定义的尺寸值,若该元素没有定义style属性,则返回值为空字符串

此外,没有其他办法可以获取css样式设置的元素尺寸值

(2) node.clientWidth/clientHeight

表示元素的内容可视宽/高度 +水平/垂直方向padding值

注意:

  • 针对纯行内元素(如apan,不包括行内块)该neI获取的值永远为0,
  • 通过document documentElement.clientWidth/clientHeight可获取页面视口的尺寸

(3) node.offsetWidth/offsetHeight

表示元素的内容可视宽度/高度 +水平/垂直方向padding值 + 水平/垂直方向barder值

(4) node.scrollWidth/scrollHeight

表示元素的内容可视宽度/高度 +水平/垂直方向padding值+ 水平/垂直方向滚动或溢出部分内容宽度/高度

当不存在滚动溢出的内容时,该值与对应的ciientWidth/clientHeight一致

注意:

  • 针对纯行内元素(如span,不包括行内块)该API获取的值永远为0。
  • 通过document documentElement.scrollWidth/scrollHeight可获取页面视口的尺寸

(5) window.innerWidth/innerHeight和outerWidth/outerHeight

window.innerWidth/innerHeight表示当前页面的视口宽度/高度,一般跟document documentElement.clientWidth/clientHeight是等价的

window.outerWidth/outerHeight表示当前整个浏览器窗口的宽度/高度,即你打开的浏览器软件显示的宽度/高度

在移动端理想视口的情况下,一般innerWidth与outerWidth是相等的

(6) window.screen.width/height/availWidth/availHeight

screen.width/height返回屏幕宽度/高度的CSS像素值

screen.availWidth/availHeight返回当前浏览器在屏幕中的可用的宽度/高度的CSS像素值。或者理解为当前状态下浏览器可能的最大宽度/高度

screen.width不一定等于screen.availWidth。当有其他小工具占据了屏幕空间时,浏览器有时不能占用小工具(如任务栏)占据的空间。

(7) node.getBoundingClientRect()

该方法的返回值为一个对象,具有width和height两个尺寸属性

如果是标准盒子模型,元素的尺寸等于width/height + padding + border-width的总和。

如果box-sizing: border-box,元素的的尺寸等于 width/height。

2. 位置

(1) event.pageX/Y,screenX/Y,clientX/Y

这几个属性只来自于DOM事件Event对象

pageX/Y表示事件触发位置相对整体页面的左上角的位置(包括页面滚动距离)

screenX/Y表示事件触发位置相对屏幕的左上角的位置

clientX/Y表示事件触发位置相对当前页面可视区域的左上角的位置

(2) node.offsetTop/offsetLeft

表示当前节点相对最近的定位祖先元素的的顶部/左边界内边距的位置

(3) node.scrollTop/scrollLeft

表示当前节点元素内部被滚动的垂直/水平距离,前提是这个这个元素内部产生了滚动条,否则该值返回0

(4) node.style.left/top

这个只能获取元素的内联style样式中定义的left/top属性值,若该元素没有定义style属性,则返回值为空字符串

(5)node.getBoundingClientRect()

它返回一个对象,其中包含了left、right、top、bottom四个属性,分别对应了该元素的左上角和右下角相对于浏览器窗口(viewport)左上角的距离。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值