使用 IMG 地图显示更大的图像

Using an IMG Map to display larger images

本文关键字:图像 显示 IMG 地图 使用      更新时间:2023-09-26

我正在使用一个有很多小图片的IMG地图。当我将鼠标悬停在每个图像上时,它将显示一个更大的图像。我该怎么做?我不介意使用javascript,css等,只要它有效。请举例说明。

IMG地图的网页

<img src="img.jpg" alt="Main Photo - Please View With Images On"
usemap="#Map" class="center" style="width:900px;" border="0" />
<map name="Map" id="Map">
 <area class="1" shape="rect" coords="4,3,225,150" />
 <area class="2" shape="rect" coords="2,152,221,303" />
 <area class="3" shape="rect" coords="3,303,221,452"  />
</map>

每个类都有不同的图像以显示更大的图像。

以下是使用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"等等。

然后这是绑定图像映射器的代码:

$('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为"工具提示容器"的隐藏div

2) mapKey是您添加到每个区域的属性的名称。此属性可以包含一个或多个逗号分隔值。Imagemapster 将共享第一个值的突出显示区域分组在一起,因此,如果不需要对任何区域进行分组,请使用不同的区域。每个区域的第二个值应该相同,我使用它来激活所有区域的工具提示。

3) areas是特定于区域的格式信息的数组。通常,您可以使用它来控制每个区域的突出显示效果的显示方式。在您的情况下,我只是使用它来激活所有领域的工具提示。键all匹配每个区域,因为它们都具有第二个键,并且toolTip: true启用工具提示。通常,您会说toolTip: "some text specific to this area:",该文本只会显示在默认工具提示容器中。在您的情况下,我们想显示图像,我想从区域本身获取图像 URL,因此我需要在显示工具提示时在函数中处理它。

4)showToolTip说为整个地图启用工具提示。

5) onShowToolTip定义一个函数,每当显示工具提示时都会调用该函数。从这里您可以截获它并更改内容以显示该区域的图像。

这应该更简单 - 但是imagemapster中的工具提示API实际上是围绕一个非常简单的模型设计的,其中每个区域都有一些硬编码文本。这是从每个区域的 href 中获取 URL 的解决方法。

我认为您想要类似下面给出的小提琴。编写的代码非常粗糙,可以优化。只需检查您想要这个或其他东西。

演示:http://jsfiddle.net/3GF6s/3/