图像映射和区域元素是不可能的,因为它们是不可见的元素,不能有子元素,也不能有样式。您将不得不像这里描述的那样做更复杂的事情
但是使用现代嵌入式 SVG是可能的——现在几乎每个浏览器都支持它。甚至 IE。
我用 Chromium 和 Firefox 对其进行了测试。
据我所知,它不能在 jQuery 的帮助下完成,而是使用通常的 Javascript。关键是:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="663px" height="663px">
<image xlink:href="http://webfro.gs/south/kb2/images/bunny.jpg" x="0" y="0" width="663" height="663" />
<circle class="office" cx="504" cy="124" r="94" />
<circle class="fire-exit" cx="168" cy="150" r="97" />
<circle class="main-exit" cx="378" cy="589" r="48" />
</svg>
_
var svgns="http://www.w3.org/2000/svg";
var areas = document.getElementsByTagNameNS(svgns, 'circle');
$(areas).each(function(elem) {
if(areas[elem].className.baseVal === text) {
areas[elem].className.baseVal += ' highlightsvg';
} else {
areas[elem].className.baseVal = areas[elem].className.baseVal.replace(' highlightsvg', '');
}
});
请参阅JSFiddle 中的此处。这是你想要的方式吗?