【JS笔记】JS获取视窗、页面、DOM等各类高度

浏览器内各类高度

一图获取各类高度 主要通过系统提供的 window、document 来获取高度:

  1. 屏幕分辨率高度 window.screen.height
  2. 屏幕可用高度 window.screen.availHeight
  3. 浏览器高度(不含浏览器1px边框) window.outerHeight
  4. 浏览器视窗高度 window.innerHeight

<html></html<body></body> 标签会默认充满视窗,所以视窗高度 也可以是:document.documentElement.clientHeightdocument.body.clientHeight

  1. 页面滚动高度 document.body.scrollTop
  2. 元素高度 DOM.offsetHeight

元素高度默认不包括 margin border padding,如果设置了 box-sizing: border-box; 那么高度会包括 padding

*将以上 height 替换成 width 即可得到相应宽度。

鼠标事件中的边距

一图获取事件中的各类边距

获取事件 event 触发位置与各个层级的边界距离,在事件触发函数内 (e) => {}

  1. 在当前 DOM 中的相对位置 e.offsetX, e.offsetY (可联想 DOM 高度 offsetHeight 来加深记忆)
  2. 在视窗中的相对位置 e.clientX, e.clientY (可联想视窗高度 document.body.clientHeight
  3. 在当前页面中的相对位置 e.pageX, e.pageY
  4. 在系统桌面中的相对位置 e.screenX, e.screenY (是的,没看错,是系统桌面!包括扩展桌面!)

总结

通过以上两节内容了解了通过 JavaScript 获取各类高度、相对位置的方法,重点记住最常用的:

  • 视窗高度 window.innerHeight / document.body.clientHeight
  • DOM高度 DOM.offsetHeight
  • 事件触发位置的相对位置 e.()X, e.()Y, 其中 视窗 client,页面 page,DOM offset

笔记主要为自用,如有错漏欢迎指正,友好交流!

相关推荐
哆啦A梦15883 小时前
商城后台管理系统 03 登录布局
javascript·vue.js·elementui
曼巴UE54 小时前
UE FString, FName ,FText 三者转换,再次学习,官方文档理解
服务器·前端·javascript
selt7914 小时前
Redisson之RedissonLock源码完全解析
android·java·javascript
行走的陀螺仪5 小时前
高级前端 Input 公共组件设计方案(Vue3 + TypeScript)
前端·javascript·typescript·vue·组件设计方案
一颗不甘坠落的流星5 小时前
【Antd】基于 Upload 组件,导入Json文件并转换为Json数据
前端·javascript·json
LYFlied5 小时前
Vue2 与 Vue3 虚拟DOM更新原理深度解析
前端·javascript·vue.js·虚拟dom
Lucky_Turtle5 小时前
【Node】npm install报错npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js
小飞侠在吗6 小时前
vue shallowRef 与 shallowReacitive
前端·javascript·vue.js
惜分飞6 小时前
sql server 事务日志备份异常恢复案例---惜分飞
前端·数据库·php