事件对象的常用坐标大致有三个:clientX,clientY。pageX,pageY。offsetX,offsetY
测试代码:
<!DOCTYPE html>
<html lang="en">
<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>
<style>
body{
position: absolute;
height: 3000px;
}
div{
position: relative;
top: 100px;
left:100px;
width: 100px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div></div>
<script>
document.addEventListener('click',function(e){
console.log(e);
//相对于浏览器页面左上角的位置(可视区域)
console.log('e.clientX:'+e.clientX,'e.clientY:'+e.clientY);
//整个文档多大它多大,不受可视窗口的影响(比如有滚动条,它还是相对整个页面的最上面)
console.log('e.pageX:'+e.pageX,'e.pageY:'+e.pageY);
//相对于dom元素左上角(确定元素内的坐标)
console.log('e.offsetX:'+e.offsetX,'e.offsetY:'+e.offsetY);
})
</script>
</body>
</html>
1.clientX,clientY
主要是确定浏览器可视范围内距离左上角的位置。不受滚动条滚动影响。
2.pageX,pageY
它是相对创建的整个文档的左上角确定位置。受滚动条影响。
3.offsetX,offsetY
是相对dom元素(触发元素)左上角的位置。