usemap与map的name必须严格一致(usemap="#xxx"对应map name="xxx",name不带#),coords基于原始像素且格式正确,href需为有效URL,alt不可缺失,否则热区静默失效。

直接用 + 就能做,但必须确保 usemap 和 name 严格匹配、coords 基于原始图片像素、每个 都有 href 和 alt,否则点击无效且无报错提示。
usemap="#xxx" 和 map name="xxx" 怎么配才不白写
这是最常失效的环节:浏览器对大小写、#、空格、特殊字符零容忍,错一个就整个热区图静默失效。
-
中的#cn-map必须和的name值完全一致(注意:的name不带#) -
name值只能含小写字母、数字、短横线,不能有中文、空格、下划线或大写字母 - 页面里多个热区图时,每组
usemap/name必须唯一,不能复用同一名称 - 调试时打开开发者工具,检查
是否被正确解析——如果元素在 DOM 中但鼠标悬停不显示手型,大概率是这里配错了
coords 坐标怎么填才点得准
coords 是以图片左上角为原点的绝对像素值,不是设计稿标注值,也不随 CSS 缩放变化。填错坐标,热区就偏移或消失。
- 矩形
shape="rect":填x1,y1,x2,y2(左上角 + 右下角),例如coords="10,20,110,120" - 圆形
shape="circle":填cx,cy,r(圆心 x、y、半径),例如coords="200,150,30" - 多边形
shape="poly":填连续的x,y对,如coords="10,10,50,10,50,50,10,50";点数必须为偶数,首尾不需重复(浏览器会自动闭合) - 别手动量图:用在线工具(Image Map Generator)或 VS Code 插件 “Image Map” 导出精确坐标
- 常见错误:坐标超出原始图片宽高、逗号后多空格、用了小数或负数、
poly点数为奇数
响应式下热区错位怎么办
的 coords 是静态像素值,只要 用了 width、height 或 max-width,热区必然偏移——这不是 bug,是机制决定的。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 最稳方案:让图片按原始尺寸显示(禁用缩放),用 CSS
background-image+div+ 绝对定位模拟热区(但失去原生href跳转和键盘可访问性) - 折中方案:用 JS 监听
resize,根据缩放比例动态重算并写入coords(需缓存原始坐标,避免反复计算) - 真要响应式 + 拖拽 + 高亮?直接换 SVG 或 Leaflet——
不是为此设计的 - 移动端注意:最小热区建议 ≥44×44px,否则点击易误触
href 跳转失败的几个硬坑
很多人写 href="#section1" 发现没反应,不是 JS 问题,而是 对锚点跳转有硬性限制。
-
href必须是有效 URL:✅href="./page.html#detail"、href="https://example.com"、href="javascript:void(0)" - ❌
href="#section1"无效(纯片段标识符不触发跳转) - 若要用 JS 处理点击,保留
href="javascript:void(0)"并加onclick,记得event.preventDefault()阻止默认行为 - 每个
必须有alt属性,否则语义缺失,影响无障碍访问和 SEO
真正麻烦的从来不是写几行 HTML,而是坐标取不准、缩放适配没兜底、或者把 name 和 usemap 当成普通属性随便命名。这些地方一松懈,整个热区图就“看起来在那儿,点起来没反应”。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










