1.什么是事件对象?
要明白事件对象,首先要知道事件。事件很常见,比如onclick:点击事件,onmousedown:鼠标按下,onmousemove:鼠标移动,onmouseover:鼠标经过,等一些列操作统统都是事件。
那么事件对象就是指:再触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。所有浏览器都支持event对象,但支持的方式不同。
注意:这里的事件对象包含了所有与事件有关的信息。比如鼠标操作时候,会添加鼠标位置的相关信息到事件对象中
var btn = document.getElementById("btn");
btn.onclick = function(event){
var event = event || window.event; //浏览器兼容写法
var x = event.clientX; //可以获取到点击事件触发时候鼠标的位置信息
}
上面代码可以看到:事件对象的写法有个兼容写法:
普通浏览器写法是:event
IE678只支持这种写法:window.event
所以兼容写法就是上面代码所示:var event = event || window.event;,要注意 此时事件对象赋值给了一个叫event变量。
2.事件对象的常见属性:
这里要说一下:pageX,screenX以及clientX的区别。
三者都是对鼠标位置进行测量计算。不同的是基准点不同,所以得到的结果或表现也不一样。
screen X screenY 是以我们的电脑屏幕 为基准点进行测量,得到的是距离电脑屏幕的位置
pageX pageY 以我们的文档 为 基准点进行计算,类似于 (绝对定位)
clientX clientY 以可视区域 为基准点 类似于 ( 固定定位 )