在DOM(文档对象模型)中,事件是可以被用户或浏览器触发的不同的动作。这些事件可以用来交互式地修改网页或触发JavaScript代码。以下是一些DOM中常见的事件类别及其详细介绍:
### 1. 鼠标事件
- **click**: 用户点击一个元素时触发。
- **dblclick**: 用户双击一个元素时触发。
- **mouseover**: 鼠标移动到元素上方时触发。
- **mouseout**: 鼠标从元素上方移开时触发。
- **mousedown**: 用户按下鼠标按钮时触发。
- **mouseup**: 用户释放鼠标按钮时触发。
- **mousemove**: 鼠标在元素内部移动时触发。
### 2. 键盘事件
- **keydown**: 用户按下键盘上的任意键时触发,如果按住不放,会重复触发。
- **keyup**: 用户释放键盘上的键时触发。
- **keypress**: 用户按下键盘上的字符键时触发(已废弃,新代码应使用keydown代替)。
### 3. 表单事件:
- **submit**: 当表单提交时触发。
- **change**: 当表单元素的值发生变化时触发。
- **focus**: 元素获得焦点时触发。
- **blur**: 元素失去焦点时触发。
- **input**: 用户输入到`<input>`, `<textarea>`或`<select>`元素时触发。
### 4. 文档/窗口事件
- **load**: 页面加载完成时触发(在`<img>`, `<iframe>`, `<script>`, `<link>`, `<style>`等元素上也可触发)。
- **unload**: 用户离开页面时触发。
- **beforeunload**: 页面卸载前触发,可以用来提示用户保存更改。
- **resize**: 浏览器窗口被调整大小时触发。
- **scroll**: 用户滚动带有滚动条的元素时触发。
### 5. 触摸事件
- **touchstart**: 用户触摸屏幕时触发。
- **touchmove**: 用户手指在屏幕上滑动时触发。
- **touchend**: 用户手指离开屏幕时触发。
### 6. 拖放事件
- **drag**: 元素正在被拖动时触发。
- **dragstart**: 拖动操作开始时触发。
- **dragover**: 拖动元素或选中的文本在放置目标上时触发。
- **drop**: 拖动元素或选中的文本被放置时触发。
- **dragend**: 拖动操作结束时(释放鼠标按钮时)触发。
这些事件提供了丰富的交互可能性,使得网页可以响应用户的操作,创建动态和交互式的用户体验。通过使用JavaScript的事件监听器(例如`addEventListener`方法),开发者可以轻松地为这些事件编写处理函数,来定义当事件发生时应当执行的操作。