使用map标签实现单图多热点(转)

转载自 http://segmentfault.com/a/1190000002489109

map标签

定义一个客户端图像映射。图像映射(image-map)指带有可点击区域的一幅图像。

  • area元素永远嵌套在map元素内部。area元素可定义图像映射中的区域。
  • img标签中的usemap属性可引用的map标签中的id或name属性(取决于浏览器),所以我们应同时向map标签添加id和name属性。

示例

例如我们想在下面一张图实现九个热点区域,不切图,就使用map标签。
Alt
首先用 ps 得到几个坐标:
Alt

然后代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img src="cat.jpg" alt="" usemap="#catmap" >
<map name="catmap">
<area shape="rect" coords="0,0,148,139" href ="http://www.baidu.com" target ="_blank" alt="">
<area shape="rect" coords="148,139,295,0" href ="http://www.sina.com" target ="_blank" alt="">
<area shape="rect" coords="295,0,439,140" href ="http://www.qq.com" target ="_blank" alt="">
<area shape="rect" coords="148,139,0,340" href ="http://www.163.com" target ="_blank" alt="">
<area shape="rect" coords="148,139,296,340" href ="http://www.soso.com" target ="_blank" alt="">
<area shape="rect" coords="296,340,439,140" href ="http://sf.gg" target ="_blank" alt="">
<area shape="rect" coords="0,340,148,493" href="http://www.zhihu.com" target ="_blank" alt="">
<area shape="rect" coords="148,493,296,340" href="http://z.cn" target ="_blank" alt="">
<area shape="rect" coords="296,340,436,490" href="http://jd.com" target ="_blank" alt="">
</map>
</body>
</html>

关于area

  • area 可以是圆形(circ),多边形(poly),矩形(rect),不同形状要选取不同的坐标(coords).
  • 圆形:shape=”circle”,coords=”x,y,z”
    x,y为圆心坐标(x,y),z为圆的半径
  • 多边形:shape=”polygon”,coords=”x1,y1,x2,y2,x3,y3,…”
    每一对x,y坐标都定义了多边形的一个顶点(0,0) 是图像左上角的坐标)。定义三角形至少需要三组坐标;高纬多边形则需要更多数量的顶点。
  • 矩形:shape=”rectangle”,coords=”x1,y1,x2,y2”
    第一个坐标是矩形的一个角的顶点坐标,另一对坐标是对角的顶点坐标,”0,0” 是图像左上角的坐标。请注意,定义矩形实际上是定义带有四个顶点的多边形的一种简化方法。(就是说,知道对角的两个点的坐标就行了。)