jquery - 单击时更改图像,带有图像映射

标签 jquery image function imagemap

我正在尝试多次使用一张图像映射。这个想法是你已经有了一张带有图像映射的图片。您单击一个区域(图像 map 上有一个突出显示),您会得到几个链接,您按一个区域,图片就会更改。新图片使用与原始图片相同的图像贴图(仅图像中的颜色发生变化)。

我已经尝试过这里提供的解决方案:Jquery change image on click

但是它不起作用,因为有图像映射。我的代码是:

    <script type="text/javascript" src="jquery.maphilight.js"></script>

<script type="text/javascript">$(function() {
        $('.map').maphilight();
    });</script>
 <script type="text/javascript src="src="http://code.jquery.com/jquery-latest.js"></script>

 <script>
  $(document).ready(function () {
    $('#area1').click(function () {
        $("#areaOne").show();
    });
    $('#area2').click(function () {
        $("#areaTwo").show();
    });
});
$(function() {
 $('#areaOne').click(function(){
   $("#pic").attr('src',"pic2.jpg");
   return false;
 });
});
   </script>


<img class="map" id="pic"  src="pic.jpg" width="800" height="533" border="0"  usemap="#map" />

<map name="map" >
<area  shape="poly" id="area1" coords="201,316,220,324,257,350,290,385,315,423,329,456,297,466,235,476,194,479,158,481,128,474,101,453,94,440,93,426,96,411,114,389,137,367,168,342" href="javascript:myFunction(1)" />
<area shape="poly" id="area2"coords="204,315,226,324,254,345,288,379,313,414,330,455,380,439,446,409,489,368,517,329,541,300,580,266,581,254,567,241,549,240,531,242,514,250,489,264,465,282,441,298,416,306,394,303,348,283,323,264,296,236,246,285" href="javascript:myFunction(2)"/>
</map>
<br />

<div id="pushnshow">
Click on Image Map and you will see<br />
<div id="areaOne" class="areaOne "style="display: none" >this </div>
<div id="areaTwo" style="display: none">and this</div>

<br />

问题似乎出在 usemap=#map 上,因为当我把它拿走时,图片变化得很好,但没有突出显示。怎么了?

最佳答案

当maphilight运行时,它会包装<img /><div class="map" />并隐藏 <img /> 。然后将图像作为背景添加到新包装 <div class="map" /> .

要让您的代码正常工作,请更改以下内容:

 $('#areaOne').click(function(){
   $("#pic").attr('src',"pic2.jpg");
   return false;
 });

对此:

 $('#areaOne').click(function(){
   $("#pic").attr('src',"pic2.jpg");
   $("#pic").parent().css('background-image',"url(pic2.jpg)");
   return false;
 });

不幸的是,没有测试用例,但我相信这对您有用。希望对您有帮助!

关于jquery - 单击时更改图像,带有图像映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734376/

相关文章:

javascript - 类型错误: Cannot read property 'setMainPage' of undefined in onsen ui,

html - 为什么这张图片加载不出来? (这实际上是一个 hello world 程序,具有简单的本地相对图像路径。)

android - 在android中将图像大小设置为全屏

arrays - 如何在 PostgreSQL 函数中声明一个行类型数组?

c++ - 编译器不喜欢 void :'( - function declaration

php - 应该 _escaped_fragment_ 返回一个完整的页面内容 [Ajax SEO ]

javascript - 从 jqGrid 中检索原始行数据

javascript - Jquery 数据表 : Filter/Search based on select box outside the table

图片上传,完成后不再请求

C++:多个变量值的类内部函数