可以使用jQuery或Javascript将图片的特定部分用作链接吗?

时间:2013-03-10 15:27:17

标签: javascript jquery hyperlink image

我有这个想法,将图片(不是文本)的单独和各个部分链接到不同的页面或网站,我想要完成而不是实际创建不同的照片并将它们彼此靠近所以它看起来像是一张完整的图片。 这里有没有人知道如何使用JavaScript的变种来实现这一点,比如jQuery或纯JavaScript或其他东西? 谢谢! : - )

4 个答案:

答案 0 :(得分:5)

我想,你想让图像的各个部分互动。即,用户应该导航到不同的位置,点击图像的不同部分或执行一些动画。

有很多方法可以解决这个问题。

  1. image map
  2. 您可以在图片上创建各种可点击的部分,如下所示:

    <img src="planets.gif" width="145" height="126" alt="Planets" usemap="#planetmap">
    
    <map name="planetmap">
      <area shape="rect" coords="0,0,82,126" href="sun.htm" alt="Sun">
      <area shape="circle" coords="90,58,3" href="mercur.htm" alt="Mercury">
      <area shape="circle" coords="124,58,8" href="venus.htm" alt="Venus">
    </map>
    

    2。创建各种紧密定位的div(或任何其他合适的容器,甚至是img标签本身),并使用CSS:Background-position属性。

    之类的东西
        <div style="background-image:url('myImage.png'); background-position:0 0; width:50px height:50px" >
        </div>
      <div style="background-image:url('myImage.png'); background-position:50 0; width:50px height:50px" >
        </div>
      <div style="background-image:url('myImage.png'); background-position:0 50; width:50px height:50px" ></div>
      <div style="background-image:url('myImage.png'); background-position:50 50; width:50px height:50px" >
    </div>
    

    详细了解background-position

    另请参阅Image Sprites

答案 1 :(得分:1)

你试过HTML Image Maps ......?

image map是图片中的区域是链接的图片。创建图片需要使用<IMG ...><MAP ...><AREA ...>代码。

答案 2 :(得分:0)

当然CSS会这样做。 HTML:

<div id="linkPictureThing">
    <img src="yourimgage.png" title="" alt=""/>
    <a href="" class="imageSection"></a>
    <a href="" class="imageSection"></a>
    <a href="" class="imageSection"></a>
    <a href="" class="imageSection"></a>
</div>

CSS:

a,img{border:none;}
#linkPictureThing>img{
    width:100%;
    height:100%;/*or auto */
    z-index:-1;
}

链接:

#linkPictureThing>a.imageSection{
    display:inline-block;/*Sorry [lt IE 8] lover*/
    width:50%;
    height:50%;
    z-index:1;
    content:'';
}
a.imageSection:hover{
    background:#FF0000;
    opacity:0.8;
}

或者可以尝试使用链接进行相对/绝对定位以获得更独特的位置:

#linkPictureThing>a.imageSection:first-child{
    position:absolute;
    top:20;
    left:0;
}

答案 3 :(得分:0)

最正确的语义方式是使用图像映射。

最简单的方法是在图像顶部放置一个div。在这个div中,在不同区域制作两个可点击的块。

使用以下代码在http://jsfiddle.net/3mQV2/上找到的示例。此示例的优点是搜索引擎可以索引两个链接。

HTML

<img src="http://lorempixel.com/400/200/" />
<div>
    <a href="test1"></a><!--
 --><a href="test2"></a>    
</div>

CSS

img {
    width:400px;
    height:200px;
    position:absolute;
}
div {
    width:400px;
    height:200px;
    position:relative;
}
div a {
    display:inline-block;
    width:200px;
    height:200px;   
}
div a:nth-child(1):hover {
    background-color:blue;
}
div a:nth-child(2):hover {
    background-color:red;
}