tags:

views:

1300

answers:

4

My problem..

I have a number of images (inside hyperlinks), and I want each to darken on mouseover (i.e. apply a black mask with high opacity or something), and then go back to normal on mouseout . But I can't figure out the best way to do it.

I've tried..

  • Jquery color animate and some javascript references.
  • Setting the opacity of the image with javascript.

I don't want..

  • Image start at 80% opacity then go to 100% on mouseover (that's easy).
  • To swap between 2 images (one light & one dark), forgot the mention this sorry..

To reiterate..

I want in image (inslide a hyperlink) to darken on mouseover and then lose its darkness on mouseout.

Thoughts?

UPDATE :

This is my progress from suggestions. Looks fine in IE8, but not in FF3

<html>
    <body>
     <a href="http://www.google.com" style="background-color:black; opacity:1;filter:alpha(opacity=100)">
      <img src="http://www.google.co.uk/intl/en_uk/images/logo.gif" width="200" 
      style="opacity:1;filter:alpha(opacity=100)" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100" 
      onmouseover="this.style.opacity=0.6;this.filters.alpha.opacity=60" />
     </a>
    </body>
</html>

Thoughts?

-- Lee

ANSWER

I'm going with this (seems to work in IE8 & FF)

<html>
    <head>
     <style type="text/css">

     .outerLink 
     {
      background-color:black; 
      display:block; 
      opacity:1;
      filter:alpha(opacity=100);
      width:200px;
     }

     img.darkableImage 
     {
      opacity:1;
      filter:alpha(opacity=100);
     }
</style>
    </head>

    <body>
     <a href="http://www.google.com" class="outerLink">
      <img src="http://www.google.co.uk/intl/en_uk/images/logo.gif" width="200" 
      class="darkableImage" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100" 
      onmouseover="this.style.opacity=0.6;this.filters.alpha.opacity=60" />
     </a>
    </body>
</html>
+2  A: 

Put a black, semitransparent, div on top of it.

erikkallen
Tried, it didn't work. If you get it working this way, please let me know.
Lee Englestone
How do you make it transparent? It needs some tweaking to get right cross-browser (which jQuery will do for you).
erikkallen
A: 

Create black png with lets say 50% transparency. Overlay this on mouseover.

bitbonk
+2  A: 

Or, similar to erikkallen's idea, make the background of the A tag black, and make the image semitransparent on mouseover. That way you won't have to create additional divs.

x3ro
Tried it, it didn't work.
Lee Englestone
This definitely does work. "Didn't work" is not a very useful problem description, so please come up with something more specific or nobody will be able to help you.
x3ro
Apologies x3ro (and all), i'll try to be more descriptive in future ;-)
Lee Englestone
A: 

How about this...

<style type="text/css">
    div.frame { background-color: #000; }
    img.pic:hover {
      opacity: .6;
      filter:alpha(opacity=60);
    }
</style>

<div class="frame">
    <img class="pic" src="path/to/image" />
</div>
Ei Maung
Thanks Ei this seems to work fine in FF but not IE8. Any thoughts?
Lee Englestone