代码如下:
<!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坐标(ie)
五、layerX、layerY
相对于带有定位的父盒子的x,y坐标
六、x、y
和pageX、pageY一样