Как отобразить изображение GIF, когда mosehover на точку в другом изображении в HTML, CSS

У меня есть карта с некоторыми местами, отмеченными оранжевой точкой.

Карта находится в "jpg" формат изображения.

Я разместил его на своем веб-сайте, теперь я хочу отобразить другое анимированное изображение GIF, когда кто-то mousehover конкретная оранжевая точка на изображении карты. Обратитесь к картинке ниже. GIF-изображение, отображаемое в каждой точке, отличается.

помогите мне решить эту проблему, используя HTML, CSS, JAVASCRIPT, Нажмите на ссылку ниже, чтобы увидеть картинку.

https://drive.google.com/file/d/0B5s1EBTl5WExcUNBTXR0aHFmYjQ/edit?usp=sharing

2 ответа

Вы можете использовать карту изображений в сочетании с одним или несколькими DIV, которые вы показываете или скрываете, и при необходимости меняете положение ваших DIV с помощью JavaScript при наведении курсора мыши.

маленький пример

<html>
<head>
<style type="text/css">
      #myOverlay{visibility:hidden; z-index:10; position:absolute; top:100px; left:100px;}
 </style>
<script language="JavaScript">
    function showDiv(imgUrl, x, y)
    {
        var myDiv = document.getElementById("myOverlay"); //get the div element
        myDiv.innerHTML = "<img src='" + imgUrl + "' />" //overwrite the content
        myDiv.style.top = y; //set position top
        myDiv.style.left = x; //set position left
        myDiv.style.visibility = "visible"; //show the div
    }

    function hideDiv()
    {       
        document.getElementById("myOverlay").style.visibility = "hidden"; //hide the div
    }
</script>
</head>
<body>
    <img src="yourFile.jpg"  usemap="#yourMapName"></img>
    <map name="yourMapName">
      <area shape="rect" coords="11,10,59,29" href = '#' onMouseOver="JavaScript:showDiv('yourOverlayImage1.gif',59,29);" onMouseOut="JavaScript:hideDiv()"alt="anyAlt1" title="anyTitle1">
     <area shape="rect" coords="110,100,159,129" href = '#' onMouseOver="JavaScript:showDiv('yourOverlayImage2.gif',159,129);" onMouseOut="JavaScript:hideDiv()"alt="anyAlt2" title="anyTitle2">
 </map>
 <div name="myOverlay" id="myOverlay"></div>
</body>
</html>

или вы можете нарисовать ваше изображение как svg ( http://www.w3.org/2000/svg) - я бы не советовал, потому что это много работы

Вы можете использовать iframe для показа изображения:

<iframe frameborder="0" scrolling="no" width="25" height="25" src="image1.gif" name="imgbox" id="imgbox">

И сделайте точку ссылкой, которая загрузит новую картинку в iframe:

<a href="image2.gif" target="imgbox">dot</a>
Другие вопросы по тегам