彻底搞懂网页中的各种定位

365 阅读2分钟

1.offset属性

(1)offsetHeight和 offsetWidth

获取元素的高度和宽度

offsetWidth = padding+border+width

offsetHeight = padding+border+width

(2)offsetTop和 offsetLeft

获取距离第一个有定位的(除了设置static)父级盒子的左边和右边的距离,这个距离是指从子盒子的边框到父盒子的padding的距离,不算大盒子的border

(3)offsetParent

返回距离第一个有定位的父盒子

2.scroll属性

(1)scrollHeight和 scrollWidth

scrollHeight和scrollWidth分为两种情况,如果盒子里面的里面没有超出就是盒子的大小,如果超出了形成滑动那将是这个里面所有内容的高度,包含超出部分的

(2)scrollTop和 scrollLeft

获取的的是超出当前元素的距离​

3.client属性

(1)clientHeight和 clientWidth

clientHeight = padding + height;

clientWidth = padding + width;

这个计算的高度宽度不包含边框

(2)clientTop和 clientLeft

计算的是边框的大小,就是紫色的高度和宽度

clientTop = 5px;

4.其他属性

(1).getBoundingClientRect

不管在什么位置都获取的都是距离页面显示区左上角的位置,这个函数返回的是ClientRect属性,分别代表: bottom: 底部距离页面顶部的距离

height: 高度 包含边框

left: 左边距离页面顶部的距离

right: 右边距离页面顶部的距离

top: 顶部距离页面顶部的距离

width: 宽度 包含边框

x: 左边距离页面顶部的距离

y: 右边距离页面顶部的距离

垂直滚动的时候y和top都会发生变化,但是都是获取的网页右上角的位置,

这个函数一般使用于当前元素是否出现在界面中用于懒加载。

(2).鼠标点击获取位置的属性

pageX,pageY 是距离屏幕上方的位置+滑动的位置 clientX,clientY 是距离屏幕上方的位置 不计算滑动 3.获取屏幕的宽高

innerHeight和innerWidth获取屏幕可见区域的宽高 浏览器兼容的写法 var height =window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

觉得本文对你有帮助,添加[自学前端之路]公众号