JS 事件类型集合包括但不限于以下类型:
文档加载与卸载相关事件:
- DOMContentLoaded:当 HTML 文档加载完毕时触发,常用于执行页面初始化操作。
- beforeunload:在窗口即将关闭时触发,常用于提示用户保存未保存数据或执行清理操作。
- unload:在窗口或框架关闭时触发,用于页面关闭前执行清理操作。
设备相关事件:
- deviceMotion:在设备检测到运动变化时触发,与加速度计相关,适用于移动设备运动检测。
- deviceOrientation:在设备方向变化时触发,与陀螺仪相关,适用于检测设备方向变化。
- orientationchange:在设备方向发生变化时触发,用于响应设备方向变化进行页面布局调整。
游戏手柄相关事件:
- gamepadconnected:在游戏手柄连接时触发。
- gamepaddisconnected:在游戏手柄断开时触发。
打印相关事件:
- afterprint:在文档完成打印后触发,常用于打印完成后的额外操作。
- beforeprint:在文档开始打印前触发,用于打印前的准备工作。
历史记录与导航相关事件:
- hashchange:在 URL 的片段标识符发生变化时触发,适用于监听浏览器历史记录变化。
- popstate:当浏览器历史记录发生变化时触发。
存储相关事件:
- storage:在浏览器本地存储发生变化时触发,用于监听 localStorage 或 sessionStorage 变化。
网络连接状态相关事件:
- offline:在设备进入离线状态时触发。
- online:在设备进入在线状态时触发。
页面生命周期相关事件:
- pagehide:在页面隐藏时触发。
- pageshow:在页面显示时触发。
Promise 相关事件:
- rejectionhandled:在 Promise 拒绝操作被处理时触发。
- unhandledrejection:在未处理的 Promise 拒绝时触发。
全屏模式相关事件:
- fullscreenchange:在全屏模式进入或退出时触发。
- fullscreenerror:在尝试全屏模式失败时触发。
指针锁定相关事件:
- pointerlockchange:在鼠标指针锁定状态改变时触发。
- pointerlockerror:在尝试锁定鼠标指针失败时触发。
文档状态相关事件:
- readystatechange:在文档 readyState 属性发生变化时触发。
可见性相关事件:
- visibilitychange:在文档可见性状态发生变化时触发。
资源加载与错误相关事件:
- abort:在资源加载过程被终止时触发。
- error:在加载资源失败、执行 JavaScript 错误等错误时触发。
- load:与资源加载完成相关。
- progress:在资源下载时周期性触发,用于显示下载进度。
表单与输入相关事件:
- change:在表单元素值发生变化并失去焦点时触发。
- input:在输入字段值发生变化时触发。
- invalid:在表单元素值无效时触发。
- submit:在表单提交时触发。
- reset:在表单被重置时触发。
- beforeinput:在用户输入之前触发。
焦点相关事件:
- blur:在元素失去焦点时触发。
- focus:在元素获得焦点时触发。
- focusin:在元素或其子元素获得焦点时触发。
- focusout:在元素或其子元素失去焦点时触发。
鼠标与触摸事件:
- click:在用户单击某个元素时触发。
- dblclick:在用户双击某个元素时触发。
- mousedown、mouseup、mousemove 等:与鼠标操作相关。
- touchstart、touchend、touchmove、touchcancel:与触摸操作相关。
- auxclick:在用户使用辅助鼠标按钮点击元素时触发。
- wheel:在鼠标滚轮被滚动时触发。
拖拽相关事件:
- drag、dragend、dragenter、dragleave、dragover、dragstart、drop:与拖拽操作相关。
媒体播放相关事件:
- canplay、canplaythrough:与音频/视频元素播放状态相关。
- ended:在媒体播放结束时触发。
- pause、play、playing:与媒体播放状态相关。
- ratechange:在媒体播放速率发生变化时触发。
- seeked、seeking:与媒体寻址操作相关。
- stalled:在媒体播放延迟时触发。
- suspend:在媒体暂停加载时触发。
- timeupdate:在媒体播放位置发生改变时触发。
- volumechange:在音量属性发生变化时触发。
- waiting:在媒体播放因缓冲而停止时触发。
- durationchange:在媒体时长发生变化时触发。
- emptied:在媒体资源被清空时触发。
剪贴板相关事件:
- copy:在用户复制文本或其他数据时触发。
- cut:在用户剪切选中的文本或其他数据时触发。
- paste:在用户粘贴内容时触发。
键盘事件:
- keydown、keypress、keyup:与键盘按键操作相关。
其他事件:
- close:在窗口或标签关闭时触发。
- contextmenu:在用户右键点击元素时触发,通常用于自定义右键菜单。
- formdata:在收集表单数据时触发。
- gotpointercapture:在元素捕获指针事件时触发。
- lostpointercapture:在元素失去指针事件捕获时触发。
- resize:在窗口或框架被调整大小时触发。
- scroll:在页面滚动时触发。
- scrollend:在滚动停止后触发。
- select:在用户完成文本选择时触发。
- slotchange:在 slot 元素内容变化时触发。
- toggle:在元素状态被切换时触发。
- transitioncancel:在 CSS 过渡被取消时触发。
- transitionend:在 CSS 过渡结束时触发。
- transitionrun、transitionstart:与 CSS 过渡开始执行相关。
- webkitanimationend、webkitanimationiteration、webkitanimationstart:与 WebKit 浏览器中的 CSS 动画相关。
- webkittransitionend:在 WebKit 浏览器中当 CSS 过渡结束时触发。
- securitypolicyviolation:在安全策略被违反时触发。
这些事件类型涵盖了 Web 开发中常见的各种交互场景,开发者可以根据具体需求选择合适的事件类型来处理用户交互。