普通的函数中没有事件对象的概念
每一个事件处理函数被触发的时候,都会生成一个事件对象,系统会将事件对象当做第一个形参传入
获取事件对象的方式
node.onclick = ($event) => {
let e = $event;
}
事件对象的属性解析
① button
操作 | 返回值 |
---|---|
左键 | 0 |
滚轮 | 1 |
右键 | 2 |
② 获取当前鼠标位置
属性 | 说明 |
---|---|
clientX、clientY | 以浏览器可视窗口左上角为原点 |
pageX、pageY | 以页面的左上角为原点,包括滚动条滚出的距离 |
screenX、screenY | 以电脑屏幕的左上角为原点 |
offsetX、offsetY | 鼠标点击的位置距点击的这个节点的左、上距离 |
③ 是否按下了控制键
属性 | 说明 |
---|---|
shiftKey | 按下shift键,返回true,否则返回false |
ctrlKey | 按下了ctrl键,返回true,否则返回false |
altKey | 按下了alt键,返回true,否则返回false |
metaKey | 按下了windows键(window系统)或command键(mac),返回true,否则返回false |
④ keyCode键码
【只在keydown事件类型下生效】
【返回值:大写字母的ASCII码值,不区分大小写】
⑤ charCode字符码
【只在keypress事件类型下生效】
【返回值:当前按下字母的ASCII码值,区分大小写】
⑥ target触发对象
【事件由谁引起的,就指向谁】
【比如:ul绑定了一个点击事件,鼠标点击ul上的li,则此时的target指向这个li,this指向ul。】