Skip to content

JavaScript 视口

视口

首先理解视口(窗口)与文档的含义

  • 视口是用户可以直接看到的网页区域,它通常小于整个网页的尺寸,所以文档尺寸一般大于视口尺寸
  • 视口的尺寸不包括浏览器的UI元素,如工具条、菜单、标签页、状态栏等
  • 当浏览器窗口大小改变时,视口的尺寸也会相应改变。
  • 当用户滚动页面时,视口会移动,显示文档的不同部分。
  • 视口的尺寸可以通过window.innerWidthwindow.innerHeight来获取

视口坐标需要知道滚动条位置才可以进行计算,有以下几种方式获取滚动位置

方法说明注意
window.innerWidth视口宽度包括滚动条(不常用)
window.innerHeight视口高度包括滚动条(不常用)
document.documentElement.clientWidth视口宽度
document.documentElement.clientHeight视口高度

lbC5wbmc

下面是获取尺寸的方法或属性

方法说明备注
element.getBoundingClientRect返回元素在视口坐标及元素大小,包括外边距,width/height 与 offsetWidth/offsetHeight 匹配窗口坐标
element.getClientRects行级元素每行尺寸位置组成的数组
element.offsetParent拥有定位属性的父级,或 body/td/th/table对于隐藏元素 /body/html 值为 null
element.offsetWidth元素宽度尺寸,包括内边距、边框、滚动条
element.offsetHeight元素高度尺寸,包括内边距、边框、滚动条
element.offsetLeft相对于最近祖先定位元素的 X 轴坐标
element.offsetTop相对于最近祖先定位元素的 Y 轴坐标
element.clientWidth元素宽度,不包含边框,只包含内容和内边距内联元素尺寸为 0
element.clientHeight元素高度,不包含边框,只包含内容和内边距内联元素尺寸为 0
element.clientLeft内容距离外部的距离,滚动条在左侧时包括滚动条尺寸
element.clientTop内容距离顶部的距离,滚动条在顶部时包括滚动条尺寸
element.scrollWidth元素宽度,内容+内边距+内容溢出的尺寸
element.scrollHeight元素高度,内容+内边距+内容溢出的尺寸
element.scrollLeft水平滚动条左侧已经滚动的宽度
element.scrollTop垂直滚动条顶部已经滚动的高度

总结如下:

20240524153757

最近更新