当前位置: 首页 > news >正文

DOM 事件 HTML 标签属性速查手册

以下是一份 DOM 事件 & HTML 标签属性速查手册,涵盖常用场景和示例,助你快速查阅和使用:

一、DOM 事件速查表

1. 鼠标事件

事件名触发时机适用元素示例代码
click元素被点击任意可见元素button.addEventListener('click', () => { ... })
dblclick元素被双击任意可见元素div.addEventListener('dblclick', handleDoubleClick)
mouseover鼠标移入元素任意可见元素img.onmouseover = () => { ... }
mouseout鼠标移出元素任意可见元素div.addEventListener('mouseout', logExit)
mousemove鼠标在元素内移动任意可见元素canvas.onmousemove = trackPosition
contextmenu右键点击元素(弹出菜单前)任意元素document.oncontextmenu = blockDefaultMenu

2. 键盘事件

事件名触发时机适用元素示例代码
keydown键盘按键按下时可聚焦元素(如 input)input.addEventListener('keydown', (e) => { if (e.key === 'Enter') submit() })
keyup键盘按键释放时可聚焦元素input.onkeyup = validateInput
keypress按键按下并产生字符时(已弃用,建议用 keydown可聚焦元素-

3. 表单事件

事件名触发时机适用元素示例代码
submit表单提交时<form>form.onsubmit = (e) => { e.preventDefault(); ... }
change表单元素值改变并失焦后input, select, textareaselect.addEventListener('change', updateOptions)
input表单元素值实时改变时input, textareainput.oninput = debounce(search, 300)
focus元素获得焦点时可聚焦元素input.onfocus = showTooltip
blur元素失去焦点时可聚焦元素input.onblur = validateField

4. 窗口/文档事件

事件名触发时机适用元素示例代码
load资源(如图片、页面)加载完成window, img, iframewindow.onload = initApp;
resize窗口大小改变时windowwindow.addEventListener('resize', handleResize)
scroll元素滚动时可滚动元素div.onscroll = throttle(checkPosition, 100)

5. 其他事件

事件名触发时机适用元素示例代码
DOMContentLoadedHTML 解析完成(DOM 树就绪,无需等待资源)documentdocument.addEventListener('DOMContentLoaded', init)
transitionendCSS 过渡动画完成任意元素div.ontransitionend = removeElement
animationendCSS 动画完成任意元素box.onanimationend = () => { ... }

二、HTML 标签属性速查表

1. 全局属性(所有标签可用)

属性名说明示例
id唯一标识元素<div id="header"></div>
class为元素指定 CSS 类名<p class="text-red"></p>
style行内 CSS 样式<div style="color: red;"></div>
title悬停提示文本<a href="#" title="返回顶部">↑</a>
data-*存储自定义数据<div data-user-id="123"></div>
contenteditable允许元素内容可编辑<div contenteditable="true"></div>

2. 表单相关属性

属性名说明适用标签示例
type输入类型(text, email, password 等)<input><input type="email">
required表单提交前必须填写input, select, textarea<input required>
disabled禁用表单元素input, button<button disabled>提交</button>
placeholder输入框提示文本input, textarea<input placeholder="请输入姓名">
min/max数值/时间输入的最小/最大值input[type=number, date]<input type="number" min="1" max="10">
pattern输入内容的正则表达式验证input[type=text]<input pattern="\d{3}-\d{4}">

3. 链接与媒体属性

属性名说明适用标签示例
href链接目标 URL<a>, <link><a href="https://example.com">链接</a>
target打开链接的方式(如 _blank 新窗口)<a><a target="_blank">新窗口打开</a>
src资源路径(图片、脚本、视频)img, script, video<img src="logo.png">
alt图片无法显示时的替代文本<img><img src="cat.jpg" alt="猫咪图片">
controls显示媒体控件(播放/暂停等)video, audio<video controls></video>
autoplay媒体加载后自动播放video, audio<audio autoplay></audio>

4. 元信息与 SEO 属性

属性名说明适用标签示例
charset文档字符编码<meta><meta charset="UTF-8">
name定义元数据名称(如关键词、描述)<meta><meta name="description" content="页面描述">
propertyOpen Graph 协议(社交媒体优化)<meta><meta property="og:title" content="标题">
rel定义链接与文档的关系<link>, <a><link rel="stylesheet" href="style.css">

三、事件处理技巧

1. 阻止默认行为

element.addEventListener('click', (e) => {
  e.preventDefault(); // 阻止链接跳转/表单提交
});

2. 阻止事件冒泡

button.onclick = (e) => {
  e.stopPropagation(); // 阻止事件向上传播
};

3. 事件委托

document.getElementById('list').addEventListener('click', (e) => {
  if (e.target.tagName === 'LI') { // 只处理 li 元素点击
    console.log('点击了列表项:', e.target.textContent);
  }
});

四、兼容性与最佳实践

  1. 优先使用 addEventListener:避免 onclick 等行内事件属性的覆盖问题。
  2. 移动端适配:使用 touchstarttouchend 替代部分鼠标事件。
  3. 语义化标签:优先使用 <button> 而非 <div> 模拟按钮,提升可访问性。
  4. 属性验证:对用户输入使用 requiredpattern 进行前端验证。

资源推荐

  • MDN Web 文档 - HTML 属性
  • JavaScript 事件参考

掌握这些事件和属性,你将能更高效地开发交互丰富的 Web 应用! 🚀

📚 推荐阅读

  • 无限畅用Cursor 编辑器,四步轻松搞定!
  • 历时两周半开发的一款加载live2模型的浏览器插件
  • github优秀开源作品集

相关文章:

  • Remainder Problem CF1207F
  • APNG格式图片文件大小优化方案 转WEBP
  • 品牌全链路电商代运营:行业格局与头部服务商解析
  • 数据存储:一文掌握存储数据到ElasticSearch详解
  • 【监督学习】ARIMA预测模型步骤及matlab实现
  • 【Web世界探险家】CSS美学(一)
  • 【REST2SQL】15银河麒麟系统下达梦数据库部署REST2SQL
  • springboot015基于SpringBoot的在线视频教育平台的设计与实现(源码+数据库+文档)
  • 音频进阶学习十六——LTI系统的差分方程与频域分析一(频率响应)
  • 【实战】使用PCA可视化神经网络提取后的特征空间【附源码】
  • 通俗易懂:RustDesk Server的搭建及使用
  • 《Android-RecyclerView实现封面滑动到指定位置放大》---ViewPager封面指示器
  • 从同步到异步:Vue 3 的异步更新策略与 `tick` 机制
  • 应对现代生活的健康养生指南
  • 【算法】798. 差分矩阵
  • MS SQL 2008 技术内幕:T-SQL 语言基础
  • 使用OpenCV实现帧间变化检测:基于轮廓的动态区域标注
  • 【vue2-el-upload上传文件】
  • Java应用程序的跨平台性能优化研究
  • [Web 信息收集] Web 信息收集 — 手动收集域名信息
  • 企业网站seo数据/营销型制作网站公司
  • 昌吉做网站需要多少钱/上海网络推广公司
  • 柳州做网站价格/搜索引擎优化通常要注意的问题有
  • 如何做彩票网站的源码/进入百度搜索首页
  • 哪些网站可以做易拉宝/免费制作网站平台
  • 网站建设合同协议/护肤品推广软文