Javascript imagemap上的Imageflip,但保留地图坐标

Javascript imagemap上的Imageflip,但保留地图坐标,javascript,html,dom,Javascript,Html,Dom,我有一张相当复杂的图像地图,上面有几个映射区域。 大多数映射区域仅映射鼠标盖和链接。但是有些区域有一个JS onClick(),这会导致imageflip。新的翻转图像基本上是旧图像,上面有一些“新东西” 有两件事需要发生,我想不出来: 新形象需要保持在那里。现在发生的是,一旦我将鼠标移出映射区域,它就会返回到旧图像 我需要imagemap(旧图像的)来处理新图像,它出现在翻页上 JAVASCRIPT //PRELOAD IMAGES FOR CLICK AND MOUSEOVER cuenta

我有一张相当复杂的图像地图,上面有几个映射区域。 大多数映射区域仅映射鼠标盖和链接。但是有些区域有一个
JS onClick()
,这会导致imageflip。新的翻转图像基本上是旧图像,上面有一些“新东西”

有两件事需要发生,我想不出来:

  • 新形象需要保持在那里。现在发生的是,一旦我将鼠标移出映射区域,它就会返回到旧图像

  • 我需要imagemap(旧图像的)来处理新图像,它出现在翻页上

  • JAVASCRIPT

    //PRELOAD IMAGES FOR CLICK AND MOUSEOVER
    cuentaBoca = new Image(655, 338)
    cuentaBoca.src = "imagenes_png/pag2/cuentame_bocadilla.png";
    
    cuenta = new Image(655, 338)
    cuenta.src = "imagenes_png/pag2/cuentame_h.png";
    
    //JS FUNCTION FOR CLICK
    function bocadillaC() {
    document.getElementById('garfio').src = cuentaBoca.src;
    }
    
    //JS FUNCTION FOR MOUSEOVER
    function cuentaH() {
    document.getElementById('garfio').src = cuenta.src;
    return true;
    }
    
    HTML

    <!-- INSERT THE PICTURE -->
    <img name="garfio" id="garfio" src="imagenes_png/pag2/base.png" width="655" height="338" border="0"  usemap="#m_garfio" alt="" />
    
    <!-- CREATE THE MAP -->
    <map name="m_garfio" id="m_garfio">
    
        <area shape="poly" id="bocadilla" coords="7,205,12,197,20,191,24,189,34,185,45,182,58,180,74,180,86,180,94,181,103,182,112,185,114,186,130,178,135,177,137,179,134,184,130,192,135,195,138,199,142,204,143,209,138,218,125,227,113,231,100,235,86,236,70,236,53,235,41,233,34,231,23,226,15,221,11,217,8,212,7,205" 
         onMouseOver="cuentaH()" onClick="bocadillaC(); return false" alt="" />
    
    </map>
    </div>
    
    
    
    单击“Cuentame”(气球)具有
    onClick()
    效果

    尝试在单击时重新定义
    原始
    函数

    您需要用图像重新定义其他函数。但是,举例来说,对于州政府来说,并没有类似的黄云图像


    但事实上,你需要使用HTML/CSS的强大功能,不要在每种情况下都绘制图像,如果没有图像映射,就更简单了。

    这就是你想要的。将显示两个图像。当我将鼠标滚动到上面的图像上时,下面的图像会发生变化,并且不会向后变化。图像vane2.jpg和vane2.png是镜像

    <html>
    <head>
    <script type="text/javascript">
    function setimage () {
        document.getElementById('hisArea').src = "vane2.png";
    }
    </script>
    </head>
    <body>
    <img id="myArea" onMouseOver="setimage();" width="176" height="176" src="vane1.jpg">
    <BR>
    <img id="hisArea" width="176" height="176" src="vane2.jpg">
    </body>
    </html>
    
    
    函数setimage(){
    document.getElementById('hisArea').src=“vane2.png”;
    }
    

    请举例说明@dizel3d刚刚意识到了这一点,很抱歉添加了它。您仍然没有在MouseOver上发布
    函数
    cuentaH()
    。我尝试了一个简单的JS测试来改变
    helloworld的背景颜色
    并且在鼠标离开滚动区域后,它保持为新颜色。我是通过
    document.getElementById('myArea').style.backgroundColor=“blue”实现的
    @WeatherVane添加了
    cuentaH()
    的功能。我如何用预加载的图像而不是颜色来替换它?我想这就是
    …().src
    的作用?谢谢,但是您的函数使用的是id“garfio”,而带有
    onMouseOver
    onClick
    的HTML部分的id是“bocadilla”。如果我的标题导致混淆,我很抱歉。我不想翻转或旋转图像。在clickevent或鼠标悬停时触发imageflip。我需要新的图像出现在点击是永久的,与工作图像mapok,我已经取代我的答案。这是你想要的吗?我很难理解为什么你在让它简单工作之前就构建了这么大的JSFIDLE。我不明白的是我应该如何重新定义其他函数。现在,当我进入另一个映射区域时,它将返回到原始图片。不要介意通过预加载图像和加载区域来扩大示例。编写一个包含一个或两个区域的简单程序,并使其在尽可能最简单的情况下工作。这里的人为什么要单步执行这些代码?但是当你这么做的时候,你可能已经回答了你的问题。
    <html>
    <head>
    <script type="text/javascript">
    function setimage () {
        document.getElementById('hisArea').src = "vane2.png";
    }
    </script>
    </head>
    <body>
    <img id="myArea" onMouseOver="setimage();" width="176" height="176" src="vane1.jpg">
    <BR>
    <img id="hisArea" width="176" height="176" src="vane2.jpg">
    </body>
    </html>