跳到主要内容

事件类型

用户界面事件在何时触发?​

事件触发时机与目标
load整个页面加载完成后在 window 触发
unload文档卸载后在 window 触发
resize浏览器窗口缩放时在 window 触发
scroll元素滚动时触发

焦点事件有什么区别?​

事件触发时机是否冒泡
focus元素获得焦点否
focusin元素获得焦点是
blur元素失去焦点否
focusout元素失去焦点是

HTML5 新增了哪些常用事件?​

事件触发时机
contextmenu显示上下文菜单, 冒泡
beforeunload页面卸载前在 window 触发
DOMContentLoadedDOM 树构建完成后在 window/document 触发
pageshowload 之后页面显示时在 window 触发
pagehide页面卸载后、unload 前在 window 触发
hashchangeURL 的 hash 变化后在 window 触发

鼠标事件有哪些, 如何区分?​

事件触发时机冒泡
click / dblclick单击 / 双击左键是
mousedown / mouseup按下 / 释放鼠标键是
mouseenter / mouseleave进入 / 离开元素否
mouseover / mouseout进入 / 离开元素 (含子元素边界)是
mousemove在元素内移动否
mousewheel滚动滚轮—
  • 位置与状态属性: clientX/clientY (相对视口)、pageX/pageY (相对页面)、screenX/screenY (相对屏幕);
  • 修饰键: shiftKey、ctrlKey、altKey、metaKey;
  • 按键: button (0 左键, 1 中键, 2 右键)、buttons (位掩码)、relatedTarget (关联元素)、wheelDelta (滚动量);
  • 坐标换算: 未滚动时 clientX 与 pageX 相同; 滚动时 pageX = clientX + body.scrollX (纵向同理);

键盘事件有哪些, 如何读取按键?​

事件触发时机
keydown按下按键, 持续按住会重复触发
keypress按键并产生字符, 持续按住会重复触发
keyup释放按键
textInput可编辑区域中插入新字符时触发
  • 常用属性: key (按键字符值)、code (物理键位)、keyCode、charCode, 以及四个修饰键布尔值;