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);
}
//随便按个键,控制台即可打印出按键编码