【问题标题】:How to tag different parts in image using CSS3/JS如何使用 CSS3/JS 标记图像中的不同部分
【发布时间】:2014-10-02 16:27:18
【问题描述】:

我正在构建一个交互式教育小应用程序,帮助孩子们发现身体的不同部位。

http://www.easypacelearning.com/images/TheWholeBody.jpg

从技术上讲,我想知道如何选择图像中的某些部分,让用户单击图像的一部分并链接到新的更具体的图像。

示例:我将人体作为背景,我想点击一只眼睛,它会弹出并说它是一只眼睛。

我怎样才能获得积分,以便我可以使用鼠标悬停来识别零件..

function getData() {
        return {
          'Head': {
            color:  ...
            points: ..
          }, 
'body': {
            color:  ...
            points: ..
          },
'leg': {
            color:  ...
            points: ..
          }
}
}

我用来实验的链接: http://jsfiddle.net/ozgsvc61/1/

【问题讨论】:

  • 我会使用一些位于图像正确区域上方的不可见元素。
  • 是的,但我该如何放置呢?我应该使用边距/填充来操纵它们吗..
  • 如果您将图像和“锚”包装在一个 div 中,然后绝对定位您的“锚”,这可能是最简单的
  • 是的!我正在尝试学习,例如在本教程中,作者正在展示如何在地图中放置大写字母。 (bost.ocks.org/mike/map)。你能打吗!

标签: javascript jquery html css


【解决方案1】:

您可以使用“Image Map”来实现此目的。这是 HTML 中一个早已被遗忘的特性。 要在图像中创建可链接区域,请使用 <map/> 元素和 <area/> elements

<area/> 元素,顾名思义,定义了图像中的可点击区域,您可以给它们一个“多边形”形状,这听起来就像您正在寻找的那样。

一个简单的例子:

<map name="body-parts">
   <area shape="poly" coords="..." href="#eyes" />
</map>

编辑
我不认为你可以用这个来收听click 事件,但你绝对可以使用hashchange 事件。

【讨论】:

  • 哇,考古+1 :)
【解决方案2】:

您可以向图像添加元素并将它们绝对定位,如下所示:

#eye {
    position: absolute;
    height: 10px;  // size of area
    width: 10px;
    top: 20px;    // position
    left: 20px;
    cursor: pointer; // make it "feel" clickable

    // maybe you want to make a circle instead of a rectangle, you can do this with
    // border-radius (thanks to J148)
    border-radius: 10px;
}

现在你可以使用 JS 来获得点击并显示任何你想要的东西,在 JQuery 中例如:

$('#eye').click(function(){ 
    // this is an eye !!!
});

使用数据属性可能更容易获取内容。

<div class="area" data-content="This is an eye"></div>

在 JQuery 中:

$('.area').click(function(){
    content = $(this).data("content");
    // show content in any way
});

【讨论】:

  • 不过,这只支持矩形区域。
  • ...和椭圆区域(边界半径)
  • 我在上面的答案中添加了这个:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2016-10-13
  • 2023-03-22
相关资源
最近更新 更多