代码如下:
<!Doctype>
<html>
<head>
<title>HTML DOM Event 对象</title>
<style>
.div1 {
position: relative;
width: 100px;
height: 100px;
background: black;
top: 200px;
left: 200px;
}
</style>
</head>
<body>
<div class="div1" id="div1">
</div>
<script>
var d = document.getElementById("div1")
d.addEventListener('click', function(e) {
var eve = e || window.event
console.log('eve', eve)
})
</script>
</body>
</html>
打印结果如下:
一、clientX、clientY
跟screenX相比就是将参照点改成了浏览器内容区域的左上角,也就是说,他计算left或top时直接忽略了滚动条的高和宽,它的参考点是浏览器可见区域的左上角,而不是页面本身的body左上角原点,计算数值和滚动条是否滚动没有关系,只是绝对的计算鼠标点距离浏览器内容区域的左上角的距离,忽略了滚动条的存在。
二、pageX、pageY
参照点是页面本身的body原点,而不是浏览器内容区域左上角,它计算的值不会随着滚动条而变动,它在计算时其实是以body左上角原点(即页面本身的左上角,而不是浏览器可见区域的左上角)为参考点计算的,这个相当于已经把滚动条滚过的高或宽计算在内了。
三、screenX、screenY
点击位置距离当前电脑屏幕的x,y坐标
四、offsetX、offsetY
相对于父盒子的x,y坐标
五、layerX、layerY
相对于带有定位的父盒子的x,y坐标,如果所有的父元素都没有定位,和pageX、pageY一样
六、x、y
和clientX、clientY一样