记录关于获取宽高以及距离父元素距离的方法
记录原因,在拖动的时候经常会使用到距离父元素的距离,以及宽高等一些方法。offsetWidth,offsetHeight,offsetTop,offsetLeft等相关属性。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
html,body{
width: 100%;
height: 100%;
}
.box{
width: 500px;
height: 500px;
border: 1px solid #e5e5e5;
margin: 30px auto;
position: relative;
}
.children{
width: 400px;
height: 400px;
background: red;
position: absolute;
top: 50px;
left: 50px;
}
</style>
</head>
<body>
<div class="box" id="box">
<div class="children" id="children"></div>
</div>
</body>
<script>
var box=document.getElementById("box")
var children=document.getElementById("children")
console.log('box.offsetWidth',box.offsetWidth)
console.log('box.offsetHeight',box.offsetHeight)
console.log('box.offsetTop',box.offsetTop)
console.log('box.offsetLeft',box.offsetLeft)
console.log('children.offsetWidth',children.offsetWidth)
console.log('children.offsetHeight',children.offsetHeight)
console.log('children.offsetTop',children.offsetTop)
console.log('children.offsetLeft',children.offsetLeft);
</script>
</html>
关于offsetWidth和offsetHight 、 offsetTop和offsetLeft
1,offsetWidth的实际宽度
offsetWidth = width + 左右padding + 左右boder
2,offsetHeith的实际高度
offsetHeith = height + 上下padding + 上下boder
3,offsetTop实际宽度
offsetTop:当前元素 上边框 外边缘 到 最近的已定位父级(offsetParent) 上边框 内边缘的 距离。如果父级都没有定位,则分别是到body 顶部 和左边的距
4,offsetLeft实际宽度
offsetLeft:当前元素 左边框 外边缘 到 最近的已定位父级(offsetParent) 左边框 内边缘的 距离。如果父级都没有定位,则分别是到body 顶部 和左边的距离
关于各个距离的展现形式
关于clientWidth和clientHeigh 、 clientTop和clientLeft
1,clientWidth的实际宽度
clientWidth = width+左右padding
2,clientHeigh的实际高度
clientHeigh = height + 上下padding
3,clientTop的实际宽度
clientTop = boder.top(上边框的宽度)
4,clientLeft的实际宽度
clientLeft = boder.left(左边框的宽度)
关于scrollWidth和scrollHeight 、 scrollTop和scrollLeft
1,scrollWidth实际宽度
scrollWidth:获取指定标签内容层的真实宽度(可视区域宽度+被隐藏区域宽度)。
2,scrollHeight的实际高度
scrollHeight:获取指定标签内容层的真实高度(可视区域高度+被隐藏区域高度)
3,scrollTop
scrollTop :内容层顶部 到 可视区域顶部的距离。
4,scrollLeft
scrollLeft:内容层左端 到 可视区域左端的距离.
附录
1,clientX、clientY
点击位置距离当前body可视区域的x,y坐标
2,pageX、pageY
对于整个页面来说,包括了被卷去的body部分的长度
3, screenX、screenY
点击位置距离当前电脑屏幕的x,y坐标
4,offsetX、offsetY
相对于带有定位的父盒子的x,y坐标