HTML 事件是用户与网页交互时触发的动作,例如点击按钮、输入文本、鼠标悬停等。以下是一些常见的 HTML 事件及其用途:
1. 鼠标事件
| 事件名称 | 描述 |
|---|---|
click | 鼠标点击元素时触发。 |
dblclick | 鼠标双击元素时触发。 |
mouseover | 鼠标指针移动到元素上时触发。 |
mouseout | 鼠标指针离开元素时触发。 |
mousemove | 鼠标指针在元素内移动时触发。 |
mousedown | 鼠标按钮按下时触发。 |
mouseup | 鼠标按钮释放时触发。 |
mouseenter | 鼠标指针进入元素时触发(不冒泡)。 |
mouseleave | 鼠标指针离开元素时触发(不冒泡)。 |
示例:
<button onclick="alert('Clicked!')">Click Me</button>
<div onmouseover="this.style.backgroundColor='gray'" onmouseout="this.style.backgroundColor='white'">
Hover over me
</div>
2. 键盘事件
| 事件名称 | 描述 |
|---|---|
keydown | 按下键盘上的任意键时触发。 |
keyup | 释放键盘上的任意键时触发。 |
keypress | 按下键盘上的字符键时触发(已废弃,使用 keydown 替代)。 |
input | 输入字段的内容发生变化时触发。 |
示例:
<input type="text" oninput="console.log('Input changed')">
<script>
document.addEventListener('keydown', (e) => {
console.log(`Key pressed: ${e.key}`);
});
</script>
3. 表单事件
| 事件名称 | 描述 |
|---|---|
submit | 表单提交时触发。 |
change | 表单字段的值发生变化时触发。 |
focus | 元素获得焦点时触发。 |
blur | 元素失去焦点时触发。 |
reset | 表单重置时触发。 |
示例:
<form onsubmit="alert('Form submitted'); return false;">
<input type="text" onchange="alert('Value changed')">
<button type="submit">Submit</button>
</form>
4. 窗口和文档事件
| 事件名称 | 描述 |
|---|---|
load | 页面或资源加载完成时触发。 |
DOMContentLoaded | 文档加载完成时触发(不包括样式表、图片等)。 |
resize | 窗口大小改变时触发。 |
scroll | 滚动条位置改变时触发。 |
unload | 页面卸载时触发(例如关闭窗口或跳转到其他页面)。 |
示例:
<script>
window.onload = () => {
console.log('Window loaded');
};
window.onresize = () => {
console.log('Window resized');
};
</script>
5. 剪贴板事件
| 事件名称 | 描述 |
|---|---|
copy | 用户执行复制操作时触发。 |
cut | 用户执行剪切操作时触发。 |
paste | 用户执行粘贴操作时触发。 |
示例:
<div oncopy="console.log('Content copied')">
Select and copy this text
</div>
6. 自定义事件
你可以使用 JavaScript 创建自定义事件,并在需要时触发它们。
示例:
// 创建自定义事件
const customEvent = new Event('myCustomEvent');
// 监听自定义事件
document.addEventListener('myCustomEvent', () => {
console.log('Custom event triggered');
});
// 触发自定义事件
document.dispatchEvent(customEvent);
7. 触摸事件(移动端)
| 事件名称 | 描述 |
|---|---|
touchstart | 手指触摸屏幕时触发。 |
touchmove | 手指在屏幕上移动时触发。 |
touchend | 手指从屏幕上抬起时触发。 |
touchcancel | 触摸事件被中断时触发(例如电话呼入)。 |
示例:
<div ontouchstart="console.log('Touch started')">
Touch me
</div>
8. 多媒体事件
| 事件名称 | 描述 |
|---|---|
play | 媒体开始播放时触发。 |
pause | 媒体暂停播放时触发。 |
ended | 媒体播放结束时触发。 |
loadedmetadata | 媒体元数据加载完成时触发。 |
示例:
<video src="example.mp4" onplay="console.log('Video playing')"></video>
9. 网络事件
| 事件名称 | 描述 |
|---|---|
online | 浏览器从离线状态切换到在线状态时触发。 |
offline | 浏览器从在线状态切换到离线状态时触发。 |
示例:
window.addEventListener('online', () => {
console.log('You are now online');
});
window.addEventListener('offline', () => {
console.log('You are now offline');
});
总结
HTML 事件是实现用户交互和动态功能的关键。通过监听和处理这些事件,可以为用户提供更丰富的交互体验。以上列举的事件涵盖了大多数常见的场景,但 HTML 和 JavaScript 的事件系统非常强大,还有更多事件可供使用。