页面中的位置:client、page、screen、offset、以及元素视图位置的区别和方法

简介: 页面中的位置:client、page、screen、offset、以及元素视图位置的区别和方法

client、page、screen、offset区别

clientX 鼠标相对于浏览器左上角x轴的坐标 ; 不随滚动条滚动而改变 ;
clientY 鼠标相对于浏览器左上角y轴的坐标 ; 不随滚动条滚动而改变 ;
pageX 鼠标相对于浏览器左上角x轴的坐标 ; 随滚动条滚动而改变 ;
pageY 鼠标相对于浏览器左上角y轴的坐标 ; 随滚动条滚动而改变 ;
screenX 鼠标相对于显示器屏幕左上角x轴的坐标 ;
screenY 鼠标相对于显示器屏幕左上角y轴的坐标 ;
offsetX 鼠标相对于事件源左上角X轴的坐标 ;
offsetY 鼠标相对于事件源左上角Y轴的坐标 ;
offsetLeft 元素相对于左边的距离;
offsetY 元素相对于上边的距离;

元素视图的属性和方法

/*
 ****** 元素视图属性
 * offsetWidth 水平方向 width + 左右padding + 左右border-width
 * offsetHeight 垂直方向 height + 上下padding + 上下border-width
 * 
 * clientWidth 水平方向 width + 左右padding
 * clientHeight 垂直方向 height + 上下padding
 * 
 * offsetTop 获取当前元素到 定位父节点 的top方向的距离
 * offsetLeft 获取当前元素到 定位父节点 的left方向的距离
 * 
 * scrollWidth 元素内容真实的宽度,内容不超出盒子高度时为盒子的clientWidth
 * scrollHeight 元素内容真实的高度,内容不超出盒子高度时为盒子的clientHeight
 * 
 ****** 元素视图属性结束
 * 
 ****** Window视图属性(低版本IE浏览器[<IE9]不支持) 【自测包含滚动条,但网络教程都说不包含???】
 * innerWidth 浏览器窗口可视区宽度(不包括浏览器控制台、菜单栏、工具栏) 
 * innerHeight 浏览器窗口可视区高度(不包括浏览器控制台、菜单栏、工具栏)
 * ***** Window视图属性结束
 * 
 ****** Document文档视图
 * (低版本IE的innerWidth、innerHeight的代替方案)
 * document.documentElement.clientWidth 浏览器窗口可视区宽度(不包括浏览器控制台、菜单栏、工具栏、滚动条)
 * document.documentElement.clientHeight 浏览器窗口可视区高度(不包括浏览器控制台、菜单栏、工具栏、滚动条)
 * 
 * document.documentElement.offsetHeight 获取整个文档的高度(包含body的margin)
 * document.body.offsetHeight 获取整个文档的高度(不包含body的margin)
 * 
 * document.documentElement.scrollTop 返回文档的滚动top方向的距离(当窗口发生滚动时值改变)
 * document.documentElement.scrollLeft 返回文档的滚动left方向的距离(当窗口发生滚动时值改变)
 ****** Document文档视图结束
 * 
 ****** 元素方法
 * 1. getBoundingClientRect() 获取元素到body
 *  bottom: 元素底边(包括border)到可视区最顶部的距离
 *  left: 元素最左边(不包括border)到可视区最左边的距离
 *  right: 元素最右边(包括border)到可视区最左边的距离
 *  top: 元素顶边(不包括border)到可视区最顶部的距离
 *  height: 元素的offsetHeight
 *  width: 元素的offsetWidth
 *  x: 元素左上角的x坐标 
 *  y: 元素左上角的y坐标 在这里插入代码片
 * 
 * 2. scrollIntoView() 让元素滚动到可视区
 * 
 * ***** 元素方法结束
 * 
 */

浏览器

window.outerHeight //浏览器高度
window.outerWidth //浏览器宽度
window.innerHeight //浏览器内页面可用高度;此高度包含了水平滚动条的高度(若存在)。可表示为浏览器当前高度去除浏览器边框、工具条后的高度
window.innerWidth //浏览器内页面可用宽度;此宽度包含了垂直滚动条的宽度(若存在)。可表示为浏览器当前宽度去除浏览器边框后的宽度。
window.outerHeight - window.innerHeight //工具栏高/宽度,包含了地址栏、书签栏、浏览器边框等范围

屏幕

screen.height //屏幕高度
screen.width //屏幕宽度
screen.availHeight //屏幕可用高度,即屏幕宽度减去上下任务栏后的高度
screen.availWidth //屏幕可用宽度。即屏幕宽度减去左右任务栏后的宽度
screen.height - screen.availHeight //任务栏高度```

页面信息

body.offsetHeight // body总高度
body.offsetWidth // body总宽度
body.clientHeight // body展示的高度;表示body在浏览器内显示的区域高度
body.clientWidth // body展示的宽度;表示body在浏览器内显示的区域宽度
window.innerHeight - body.clientHeight // 滚动条高度/宽度
相关文章
|
Java 测试技术 Maven
Spring Boot项目打包配置详解
Spring Boot项目打包配置详解
1109 0
|
Web App开发
如何彻底解决 Edge 浏览器无法安装扩展程序的问题
Edge浏览器扩展安装失败(如提示“程序包无效:CRX_REQUIRED_PROOF_MISSING”或按钮灰色无法启用)时,可尝试以下两种解决方法: **方法一(推荐):** 通过下载并配置 `msedge.adm` 策略文件,在本地组策略编辑器中添加扩展ID白名单,重启浏览器后即可正常使用。 **方法二:** 将扩展文件从 `.crx` 改为 `.zip`,拖拽至扩展管理页面或解压后使用“加载解压缩的扩展”功能安装(但可能被自动删除)。
6100 2
|
8月前
|
前端开发 Java 数据库
【数据载体POJO】POJO / DO / PO / DTO / VO / BO / Query / Entity / TO 全方位对比分析
本文系统解析Java企业级开发中各类数据载体(POJO/PO/DO/Entity/BO/DTO/TO/VO/Query)的本质、分层定位与使用边界,强调分层解耦、数据安全与职责单一原则,覆盖DDD、微服务及Spring生态实践,助力构建高内聚、低耦合的健壮架构。
1045 9
|
11月前
|
人工智能 运维 监控
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
366 12
|
云安全 监控 安全
服务器的使用安全如何保障
德迅卫士主机安全软件,采用自适应安全架构,有效解决传统专注防御手段的被动处境,精准捕捉每一个安全隐患,为您的主机筑起坚不可摧的安全防线
|
前端开发 JavaScript API
node事件循环中事件执行顺序
本文详细介绍了Node.js环境下的事件循环机制,包括其六个主要阶段:timers、I/O callbacks、idle, prepare、poll、check和close callbacks。文章通过具体代码示例解释了`setTimeout`、`setImmediate`和`process.nextTick`在事件循环中的执行顺序和区别。还探讨了在不同情况下(如I/O操作中)这些函数的执行顺序如何受到影响。最后,通过一个综合例子,展示了实际编码中事件循环的执行顺序。
640 1
node事件循环中事件执行顺序
|
消息中间件 存储 缓存
QPS多少,才算高并发 ?
本文详解高并发概念及 QPS 标准,大厂面试高频点,建议掌握收藏。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
QPS多少,才算高并发 ?
|
资源调度 前端开发 JavaScript
秒懂 Yarn:从安装配置到高效使用的全攻略
秒懂 Yarn:从安装配置到高效使用的全攻略
|
jenkins 持续交付
【Jenkins】使用brew安装jenkins并配置局域网IP访问
解决Jenkins≈只能用localhost\127.0.0.1访问,但无法通过IP地址访问的问题
9891 0
|
JSON 前端开发 JavaScript
Vue微前端新探:iframe优雅升级,扬长避短,重获新生
Vue微前端新探:iframe优雅升级,扬长避短,重获新生
1357 0