event事件对象的总结

191 阅读2分钟

event事件

event事件的概念:在触发某个事件的时候,都会产生一个event事件对象。 这个对象中包含所有与事件相关的信息,包括触发事件的元素,事件的类型,以及其他与事件相关的信息。 例如: 鼠标事件触发时,事件对象中会包含鼠标的位置信息等;按键事件触发时,事件对象中则会包含与按键相关的信息。

获取事件对象的方法:

获取事件还是很方便的,只需要在函数中传入一个参数即可。当然参数名字随意。

ele.onclick = function(e){
    console.log(e); 
    //打印出来的事件对象e包含了与点击事件有关的所有信息
}

这个代码存在兼容问题,在IE678里要通过window.event来获取事件对象,可以写成如下的兼容封装代码:

ele.onclick = function(e){
    e = e || window.event;
}

事件对象的常用属性:

事件对象中包括大量的属性,但是用到的并不多,常用的就是获取鼠标的位置信息按键码的相关信息。

pageX 和 pageY  (推荐使用)
//获取鼠标在整个页面中的坐标
clientX 和 clientY 

获取鼠标在可视范围内的坐标。

可视范围的概念(不包括浏览器上面默认部分):获取到的鼠标的坐标(x,y)都不会超过可视区的宽度和高度。如果把这个值赋给一个元素,则当屏幕滚到下一屏时,元素也还是在上一屏。

如果想让元素一直跟随鼠标,推荐做法:

ele.style.position = "fixed";
//给元素设置固定定位,坐标就相对于浏览器窗口
screenX 和 screenY  //待了解,后续补充

键盘码

MDN不推荐使用keyCode,推荐用code,但是现在浏览器大部分都不支持code,keyCode好用,但是不知道哪天就不能用了。

document.body.onkeyup = function(e){
     console.log(e.keyCode);
    }
    //随便按个键,控制台即可打印出按键编码