Search code examples
javascripthtmlcssimagemap

Highlight a section of an image in JavaScript


I run a small webpage that allows users to click on various links using image maps. I'd like to highlight the section that a user clicks on to give some feedback to the user (they may be clicking on several different parts rapidly).

Is there a way I can invert (or otherwise highlight) a small section of an image JavaScript?


Solution

  • Instead of using image maps, you could try this CSS method:

    Use a transparent <div> on top of each "image-map" part (link), and then use the CSS :hover pseudo-class to handle the highlighting.

    CSS:

    #image { 
        position: relative; 
        width: 400px;
        height: 100px; 
        background-image: url(image_map.png); 
    }
    
    #map-part { 
        position: absolute; 
        top: 10px; 
        left: 10px; 
        width: 50px; 
        height: 50px; 
        background-color: transparent;  
    }   
    
    #map-part:hover { 
        background-color: yellow;           /* Yellow Highlight On Hover */
        opacity: 0.2;
        filter: alpha(opacity=20);      
    }
    

    HTML:

    <div id="image">
        <a id="map-part" href="http://www.example.com/"></a>
    </div>
    

    Note that this will only work for rectangular links.