一、clientX、clientY
点击位置距离当前body可视区域的x,y坐标
二、pageX、pageY
对于整个页面来说,包括了被卷去的body部分的长度
三、screenX、screenY
点击位置距离当前电脑屏幕的x,y坐标
四、offsetX、offsetY
相对于带有定位的父盒子的x,y坐标
五、x、y
和screenX、screenY一样
六、面试题:实现页面上拖拽div container的效果
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
window.onload = function () {
let divElement = document.getElementsByClassName("container");
let pushdiv = false;
let clickPos = {}
divElement[0].addEventListener("mousedown", (e) => {
//e.offset +'px';相对于带有定位的父盒子的x,y坐标
clickPos = {
x: e.offsetX,
y: e.offsetY
}
pushdiv = true
})
divElement[0].addEventListener("mousemove", (e) => {
//e.page +'px'; 表示距离对于整个页面来说,包括了被卷去的body部分的长度
if (pushdiv) {
let curPos = {
x: e.pageX - clickPos.x,
y: e.pageY - clickPos.y
}
divElement[0].style.left = curPos.x + 'px';
divElement[0].style.top = curPos.y + 'px';
console.log(curPos)
console.log('mousemove')
}
})
divElement[0].addEventListener("mouseup", (e) => {
console.log('mouseup')
pushdiv = false;
})
}
</script>
</head>
<style>
.container {
border: 3px solid red;
position: absolute;
width: 100px;
height: 100px;
left: 20px;
top: 20px;
}
</style>
<body>
<div class="container">drag me1</div>
</body>