页面中的位置: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 // 滚动条高度/宽度
相关文章
|
JavaScript
element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示
问题原因:多个tabs共用一个实体,动态显示隐藏列 出现了固定在右侧的列(fixed="right")错位 【解决方案】 表格的重新布局,只要table数据发生变化的时候就重新渲染表格 ```js this.$nextTick(() => { this.$refs.formname.doLayout() }) ``` 参考element官方文档 ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-e40
251 0
element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示
|
6月前
|
前端开发
z-index失效的几种情况,父标签position属性为relative的时候,详解
z-index失效的几种情况,父标签position属性为relative的时候,详解
|
存储 缓存
直接映射缓存,全相联映射缓存,组相连映射与tag,index,offset的理解
直接映射缓存,全相联映射缓存,组相连映射与tag,index,offset的理解
507 0
|
前端开发
前端 video 元素总是浮在最上方,增加一个 z-index 属性
前端 video 元素总是浮在最上方,增加一个 z-index 属性
ViewPager2实现内部Item的动态滚动
最近接到了一个需求,大概类似如下图所示的一个样式(省略了部分细节,不影响大概)。
341 0
|
容器
使用Fragmentation,start跳转到嵌套viewpager页面出现返回键重写失效原因。
最近在写项目时,采用的是单Activity+多Fragment的架构,用的Fragmentation的库。我的主页面是一个BootomFragment的抽象类(当然它还有一个管理类),其又继承自最大的LatteDelegate,LatteDelegate又继承自Fragment并实现Fragmentation库的接口,当然,当然这只是其中一部分,所以简略的讲了一下,大概知道层次就行。
103 0
使用Fragmentation,start跳转到嵌套viewpager页面出现返回键重写失效原因。
|
存储
OS - ​为什么偏移值为2^(n-1)-1而不是 2^(n-1)呢?​
OS - ​为什么偏移值为2^(n-1)-1而不是 2^(n-1)呢?​
116 0
|
算法 前端开发 关系型数据库
3D Slicer Programmatically Set Slice Offset and Intersections 用代码修改Slicer中的切片偏移和交叉点显示
在3D Slicer中,当我们导入.mha/.mhd等格式的volume文件后,那么我们就可以在Axial, Sagittal, Coronal三个方向来观察我们的MRI或者CT的图像了。3D Slicer界面提供了很多交互的功能,比如正上方就有一个滑动条slider,可以用来滑动切片观察,如果我们不想手动来滑动slider,而是通过事件触发,或者其他功能来触发时,那么我们就是要通过代码来对切片进行交互。
1500 0