事件类型

DOM 事件被发送用于通知代码相关的事情已经发生了。每个事件都是继承自 Event 类的对象,可以包括自定义的成员属性及函数用于获取事件发生时相关的更多信息。事件可以表示从基本用户交互到渲染模型中发生的事件的自动通知的所有内容。

资源事件

事件名称何时触发
cachedmanifest 中列出的资源已经下载,应用程序现在已缓存
error资源加载失败时
abort正在加载资源已经被中止时
load资源及其相关资源已完成加载
beforeunloadwindowdocument 及其资源即将被卸载
unload文档或一个依赖资源正在被卸载

网络事件

事件名称何时触发
online浏览器已获得网络访问
offline浏览器已失去网络访问

焦点事件

事件名称何时触发
focus元素获得焦点(不会冒泡)
blur元素失去焦点(不会冒泡)

Websocket 事件

事件名称何时触发
openWebSocket 连接已建立
message通过 WebSocket 接收到一条消息
errorWebSocket 连接异常被关闭(比如某些数据无法发送)
closeWebSocket 连接已关闭

会话历史事件

事件名称何时触发
pagehide用户离开网页时触发
pageshow用户浏览网页时触发
pagestate

CSS 动画事件

事件名称何时触发
animationstart某个 CSS 动画开始时触发
animationend某个 CSS 动画完成时触发
animationiteration某个 CSS 动画完成后重新开始时触发

CSS 过渡事件

事件名称何时触发
transitionstart某个过渡开始时触发(延时后)
transitioncancel某个过渡取消后触发
transitionend某个过渡完成时触发
transitionrun某个过渡在运行时触发(延时前)

表单事件

事件名称何时触发
reset点击重置按钮时
submit点击提交按钮

视图事件

事件名称何时触发
fullscreenchange
fullscreenerror
resize
scroll

剪贴板事件

事件名称何时触发
cut已经剪贴选中的文本内容并且复制到剪贴板
copy已经把选中的文本内容复制到了剪贴板
paste从剪贴板复制的文本内容被粘贴

键盘事件

事件名称何时触发
keydown按下任意按键
keypress除 Shift、Fn、CapsLock 外任意键被按住
keyup释放任意按键

鼠标事件

事件名称何时触发
mouseenter指针移到有事件监听的元素内
mouseover指针移到有事件监听的元素或者它的子元素内
mousemove指针在元素内移动时持续触发
mousedown在元素上按下任意鼠标按钮
mouseup在元素上释放任意鼠标按键
click在元素上按下并释放任意鼠标按键
dbclick在元素上双击鼠标按钮
contextmenu右键点击
wheel滚轮向任意方向滚动
mouseleave指针移出元素范围外(不冒泡)
mouseout指针移出元素,或者移到它的子元素上
select文本被选中
pointerlockchange鼠标被锁定或者解除锁定发生时
pointerlockerror可能因为一些技术的原因鼠标锁定被禁止时

拖拽事件

事件名称何时触发
dragstart用户开始拖动 HTML 元素或选中的文本
drag正在拖动元素或文本选区(在此过程中持续触发,每 350ms 触发一次)
dragend拖放操作结束(松开鼠标按钮或按下 Esc 键)
dragenter被拖动的元素或文本选区移入有效释放目标区
dragover被拖动的元素或文本选区正在有效释放目标上被拖放(在此过程中持续触发,每 350ms 触发一次)
dragleave被拖动的元素或文本选区移出有效释放目标区
drop元素在有效释放目标区上释放

媒体事件

事件名称何时触发
durationchange当指定音频/视频的时长数据发生变化时
loadedmetadata当指定音频/视频的元数据已加载时
loadeddata当当前的数据已加载,单没有足够的数据来播放指定音频/视频的下一帧时
canplay当浏览器能够开始播放指定的音频/视频时
canplaythrough当浏览器预计能够在不停下来进行缓冲的情况下持续播放指定的音频/视频时
ended当指定音频/视频播放完成后触发
emptied
stalled浏览器尝试获取媒体数据,但数据不可用时触发
suspend浏览器刻意不加载媒体数据时触发
play开始播放音频/视频时触发
playing当音频/视频因缓冲而暂停或停止后已就绪时触发
pause当音频/视频已暂停时触发
waiting当视频由于需要缓冲下一帧而停止时触发
seeking当用户开始移动/跳跃到音频/视频中的新位置时触发
seeked当用户已移动/跳跃到音频/视频中的新位置时触发
ratechange当音频/视频的播放速度已更改时触发
timeupdate当目前的播放位置已更改时触发
volumechange当音量已更改时触发

进度事件

事件名称何时触发
loadstart浏览开始寻找指定音频/视频时,即当加载过程开始时触发
progress浏览器正在下载指定的音频/视频时触发
error加载过程发生错误时触发
timeout加载过程由于超时而失败时触发
abort多媒体数据终止下载时触发,而不是发生错误时触发
load加载完成时触发
loadend进度加载停止(在 errorabortload 完成时执行)

其他更多不常见及非标准事件分类详阅读 Mozilla Events


参考资料: