Entiendo.
Bueno te puedo mostrar un ejemplo sencillo. Está hecho con jQuery porque hace que muchas tareas (como animar y quitar y agregar clases) sea muy sencillo de nuestra parte:
Código HTML:
Ver original<!doctype html>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){
//variables de configuración
var opacidad_inicial = 0.4;
var opacidad_final = 1;
var clase_activo = 'boton-activo';
var clase_boton = 'boton';
//obtenemos los botones
var botones = $('.' + clase_boton);
//apliamos estilos iniciales
botones.css({
opacity:opacidad_inicial
});
//animación al pasar el mouse
botones
.mouseenter(function(){
$(this).not('.' + clase_activo).stop().animate({
//incluir estilos
opacity:opacidad_final
});
})
.mouseleave(function(){
$(this).not('.' + clase_activo).stop().animate({
//incluir estilos
opacity:opacidad_inicial
});
});
//agregar clase activa si se hace click
botones.click(function(){
botones.not(this).removeClass(clase_activo).trigger('mouseleave');
$(this).addClass(clase_activo)
});
});
<!--
.boton{
/* Estilos comunes para TODOS los botones */
display:block;
float:left;
width:200px;
height:200px;
text-indent:-3333px; /*ocultar el texto*/
}
/* Estilos para cada boton*/
#boton-axe{ background:url(http://www.thescentfactoryonline.com/yahoo_site_admin/assets/images/axe_unlimited.68181717.jpg); }
#boton-rexona{ background:url(http://www.informabtl.com/wp-content/uploads/2011/07/Imagen-REXONA-FINAL1.jpg); }
#boton-rexona-cd{ background:url(http://babyccinoblog.com/wp-content/uploads/2008/04/rexona2.jpg); }
/* estilos para el boton activo */
.boton-activo{
}
-->
<!-- el boton es un link con el texto axe unlimited, el cual ocultamos y ponemos una imagen -->
<a class="boton" id="boton-axe" href="#">Axe Unlimited
</a> <a class="boton" id="boton-rexona" href="#">Rexona Men
</a> <a class="boton" id="boton-rexona-cd" href="#">Rexona Cotton dry
</a>
Lai dea es tener un enmarcado válido, fijate que el HTML es sencillo y correcto (excepto que los links no llevan a ningún lado, pero deberían).
Cada <a> tiene una clase (boton) y un id que lo identifica como único para poder asignarle la imagen con CSS.
Respecto al script, hace lo siguiente:
- Obtiene algunas variables que vos configurarías, como ser opacidad, clases, etc. La clase para la variable clase_activo es la que definiría los estilos e identificaría cual botón es el activo ahora.
- Aplica el estilo inicial que tendrían todos los botones
- Asigna un evento para que al pasar el mouse, se aplica una opacidad y al sacarlo se aplique otra.
- Asigna una función al evento 'click', que lo que hace es quitarle la clase activa a todos los botones menos al que se le hizo click y disparar el evento 'mouseleave' para que se realice la animación (Hacé la prueba, hacé click en un botón y después en otro. Vas a ver que el primer botón pierde la opacidad con una animación, como si sacaras el mouse de él).
- Luego le asigna la clase activa al botón que clickeaste.
Entonces la idea es esa. Basate en ese script para hacer lo tuyo, tal vez no varíe demasiado.
Usá los métodos addClass() y removeClass() para agregar y quitar clases, las cuales tendrían estilos asignados en el CSS
Espero se entienda :P