这是使用ImageMapster的一种方法:
http://jsfiddle.net/zSBL5/
要使用其内置的工具提示 API 进行这项工作,您需要做几件事。首先为每个区域添加一个属性,如下所示:
<area data-key="2,all" shape="rect" coords="0,90,82,170"
href="http://www.shelterness.com/pictures/amazing-diy-photo-tiles-1-500x373.jpg" />
注意data-key
。这是 ImageMapster 的“mapKey”。对于您的情况,我们需要它的唯一原因是创建一个名为“all”的区域组,可用于为每个区域显示相同的工具提示。每个区域都将具有这样的属性,但具有不同的数字,例如data-key="3,all"
、data-key="4,all"
等。
然后是绑定imagemapster的代码:
$('img').mapster({
toolTipContainer: $('#tooltip-container'),
mapKey: 'data-key',
areas: [ {
key: 'all',
toolTip: true
}],
showToolTip: true,
onShowToolTip: function(data) {
if (this.href && this.href!='#') {
data.toolTip.html('<img src="'+this.href+'">');
}
}});
以下是每个选项的含义:
1)toolTipContainer
应包含模板的 HTML 以显示工具提示。在小提琴中,你会看到我添加了一个 ID 为“tooltip-container”的隐藏 div
2)mapKey
是您添加到每个区域的属性的名称。此属性可以包含一个或多个逗号分隔值。Imagemapster 将共享第一个值的突出显示区域组合在一起,因此如果您不需要对任何区域进行分组,请使用不同的区域。每个区域的第二个值应该相同,我使用它来激活所有区域的工具提示。
3)areas
是一组特定于区域的格式信息。通常您使用它来控制如何显示每个区域的突出显示效果。在您的情况下,我只是使用它来激活所有区域的工具提示。该键all
匹配每个区域,因为它们都将其作为第二个键,并toolTip: true
启用工具提示。通常您会说toolTip: "some text specific to this area:"
,该文本只会显示在您的默认工具提示容器中。在您的情况下,我们想要显示图像,并且我想从区域本身获取图像 URL,因此在显示工具提示时我需要在函数中处理它。
4)showToolTip
说为整个地图启用工具提示。
5)onShowToolTip
定义一个在显示工具提示时调用的函数。从这里您可以截取它并更改内容以显示该区域的图像。
This should be simpler - but the tooltip API in imagemapster is really designed around a very simple model where you just have some hardcoded text for each area. This is a workaround to grab the URL from the the href of each area.