www.webdeveloper.com
Results 1 to 3 of 3

Thread: Image map onmouseover help

  1. #1
    Join Date
    Mar 2012
    Posts
    1

    Unhappy Image map onmouseover help

    I've been working on this for days now, so if you can help I'll be extremely grateful. I want to make a map of the world where the countries change colors when you mouse over them. I can cut out all the country shapes and color them in photoshop, but I'm having trouble with the html, css and javascript. I don't want to use css hover because the hover regions are all rectangles. I'd rather have an irregularly shaped hot spot in the shape of a country and have an image of the same country that's colored differently appear onmouseover, then disappear again onmouseout.

    Basically, I need to know how to bring up an image at a specified location when mousing over a hotspot at the same location.

    This is as far as I've gotten so far, but (problem 1) the image doesn't appear where the hot spot is and (problem 2) I have the famous flickering problem.

    Please help.



    <html>
    <head>

    <style type="text/css">
    #map
    {
    position:absolute;
    left:0px;
    top:0px;
    }
    ul.countries{
    list-style: none;
    }
    li.safari{
    position: absolute;
    left:50px;
    top:50px;
    display: none;
    background-image:url('http://www.w3schools.com/images/compatible_safari.gif');
    }
    #img
    {
    position:absolute;
    left:0px;
    top:0px;
    }
    #bkgndimg
    {
    position:absolute;
    left:0px;
    top:0px;
    }
    </style>

    </head>
    <body>

    <img id="bkgndimg" src="http://www.w3schools.com/images/w3schoolslogo.gif" >

    <div="map">
    <img id="img" src="http://www.w3schools.com/images/w3schoolslogo.gif" usemap="#map" name="browser" />

    <map name="map">
    <area shape="circ" coords="50,50,50" href="#" title="example" onMouseOver="document.browser.src='http://www.w3schools.com/images/compatible_safari.gif'"
    onMouseOut = "document.browser.src='http://www.w3schools.com/images/w3schoolslogo.gif'" />
    </map>

    <ul class="countries">
    <li class="safari"><a href="#">Safari</li>
    </ul>


    </body>
    </html>

  2. #2
    Join Date
    Jun 2004
    Location
    Portsmouth UK
    Posts
    2,689
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
    <head>
      <title></title>
    <style type="text/css">
    /*<![CDATA[*/
    .tst {
      position:absolute;left:22px;top:20px;width:351px;height:263px;border:solid black 1px;background-Image:url(http://www.vicsjavascripts.org.uk/StdImages/WinterPalace.jpg);
    }
    
    .tst IMG {
     position:absolute;z-Index:101;width:351px;height:263px;border-Width:0px;
    }
    
    
    /*]]>*/
    </style></head>
    
    <body>
      <div id="tst3" class="tst" >
       <img src="http://www.vicsjavascripts.org.uk/StdImages/Blank.gif" alt="WinterPalace" usemap="#ImageMap3" ismap="ismap" style="z-Index:101;" />
      </div>
    
     <map name="ImageMap3" id="map3" >
      <area shape="rect" alt="" coords="6,138,73,199"   />
      <area shape="rect" alt="" coords="85,80,173,129" />
      <area shape="poly" alt="" coords="220,147,220,147,203,145,178,158,160,180,185,187,216,190,220,147" />
     </map>
    
    <script type="text/javascript">
    /*<![CDATA[*/
    // note shape cicle is not allowed
    
    function zxcMapHilight(o){
     var obj=document.getElementById(o.ImageParentID),map=document.getElementById(o.ImageMapID),areas=map.getElementsByTagName('AREA'),ary=o.ImageArray,coords,lft,top,w,h,img,z0=0,z0a;
     for (;z0<areas.length;z0++){
      lft=10000;
      top=10000;
      w=0;
      h=0;
      coords=areas[z0].coords.split(',');
      for (z0a=0;z0a<coords.length;z0a+=2){
       lft=Math.min(lft,coords[z0a]);
       top=Math.min(top,coords[z0a+1]);
       w=Math.max(w,coords[z0a]);
       h=Math.max(h,coords[z0a+1]);
      }
      if (ary&&ary[z0]&&coords.length%2==0){
       img=document.createElement('IMG');
       img.src=ary[z0];
       img.style.position='absolute';
       img.style.visibility='hidden';
       img.style.zIndex='1';
       img.style.left=lft+'px';
       img.style.top=top+'px';
       img.style.width=w-lft+'px';
       img.style.height=h-top+'px';
       obj.appendChild(img);
       this.addevt(areas[z0],'mouseover','show',img);
       this.addevt(areas[z0],'mouseout','show',img);
      }
     }
    
    }
    
    zxcMapHilight.prototype={
    
     show:function(e,img){
      img.style.visibility=e.type=='mouseout'?'hidden':'visible';
     },
    
     addevt:function(o,t,f,p){
      var oop=this;
      if (o.addEventListener) o.addEventListener(t,function(e){ return oop[f](e,p);}, false);
      else if (o.attachEvent) o.attachEvent('on'+t,function(e){ return oop[f](e,p); });
     }
    
    }
    
    
    new zxcMapHilight({
      ImageParentID:'tst3',
      ImageMapID:'map3',
      ImageArray:[
       'http://www.vicsjavascripts.org.uk/StdImages/One.gif',
       'http://www.vicsjavascripts.org.uk/StdImages/Two.gif',
       'http://www.vicsjavascripts.org.uk/StdImages/Three.gif',
       'http://www.vicsjavascripts.org.uk/StdImages/Four.gif',
      ]
    });
    /*]]>*/
    </script>
    </body>
    
    </html>
    Vic

    God loves you and will never love you less.

    http://www.vicsjavascripts.org/Home.htm
    If my post has been useful please donate to http://www.operationsmile.org.uk/

  3. #3
    Join Date
    Jun 2013
    Posts
    3
    PHP Code:
    <body>
      <
    div id="tst3" class="tst" >
       <
    img src="http://www.vicsjavascripts.org.uk/StdImages/Blank.gif" alt="WinterPalace" usemap="#ImageMap3" ismap="ismap" style="z-Index:101;" />
      </
    div>

     <
    map name="ImageMap3" id="map3" >
      <
    area shape="rect" alt="" coords="6,138,73,199"   />
      <
    area shape="rect" alt="" coords="85,80,173,129" />
      <
    area shape="poly" alt="" coords="220,147,220,147,203,145,178,158,160,180,185,187,216,190,220,147" />
     </
    map
    I am looking for something like this. at mouseover and sound, at mouseout _blank another page.

    But I don't no how? My imagemap is like above.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles