【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

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

相关推荐
JIngJaneIL19 小时前
助农惠农服务平台|助农服务系统|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·助农惠农服务平台
云外天ノ☼19 小时前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证
gihigo199819 小时前
使用JavaScript和Node.js构建简单的RESTful API
javascript·node.js·restful
一位搞嵌入式的 genius19 小时前
前端实战开发(三):Vue+Pinia中三大核心问题解决方案!!!
前端·javascript·vue.js·前端实战
塞纳河畔的歌19 小时前
保姆级教程 | 麒麟系统安装Edge浏览器
前端·edge
前端.火鸡19 小时前
Vue 3.5 新API解析:响应式革命、SSR黑科技与开发体验飞跃
javascript·vue.js·科技
多睡觉觉19 小时前
数据字典:从"猜谜游戏"到"优雅编程"的奇幻之旅
前端
嗝屁小孩纸19 小时前
开发集成热门小游戏(vue+js)
前端·javascript·vue.js
赛博切图仔19 小时前
深入理解 package.json:前端项目的 “身份证“
前端·javascript
UIUV19 小时前
JavaScript 学习笔记:深入理解 map() 方法与面向对象特性
前端·javascript·代码规范