2012-02-12 34 views

Respuesta

21

Sí, esto es posible con las transiciones CSS3.

He aquí un ejemplo: http://jsfiddle.net/fgasU/

código:

<img src="photo.jpg"/>​ 

img{-webkit-transition: opacity 1s ease-in-out; 
-moz-transition: opacity 1s ease-in-out; 
-o-transition: opacity 1s ease-in-out; 
-ms-transition: opacity 1s ease-in-out; 
transition: opacity 1s ease-in-out; 
} 


img:hover{opacity:0}​ 

Este sencillo ejemplo cambiará la opacidad en vuelo estacionario. Debido a que se define una transición css para 'todas' las propiedades, y se les da una transición de 1 segundo con una función de relajación de facilidad de entrada y salida, el cambio de propiedad está animado.

Además, como es una propiedad nueva, la propiedad de transición debe ir precedida por la implementación del navegador correspondiente. -webkit para Chrome/safari, -moz para firefox/mozilla, -o opera, -ms microsoft.

+1

No tiene que segmentar todas las propiedades, cuando solo cambia una. Yo especificaría la opacidad en su lugar. – Nix

+0

Acepto, actualizado. – Vigrond

+0

Gracias, pero esto no es exactamente lo que quiero. Por favor, mire nuevamente el ejemplo que he publicado en mi pregunta: Cuando no estoy sobre las imágenes, quiero que tengan opacidad 0 y cuando cierro el contenedor de imágenes para tener este efecto de transición de 0 a 1 exactamente como en el ejemplo –

2

La solución de jQuery: Envuelva las miniaturas en un divisor de activación, que se coloca completamente sobre la imagen. Apunta a eso para atenuar los elementos dentro y fuera.

Para una solución CSS3, consulte la respuesta de Vigrond.

HTML

<div id="wrapper"> 
    <img src="http://lorempixum.com/600/600" /> 
    <div id="trigger"> 
     <div id="thumbnails"> 
      <img src="http://lorempixum.com/60/60" /> 
      <img src="http://lorempixum.com/60/60" /> 
      <img src="http://lorempixum.com/60/60" /> 
      <img src="http://lorempixum.com/60/60" /> 
     </div> 
    </div> 
</div> 

CSS

#wrapper { position:relative; } 

#trigger { 
    width:100%; 
    height:80px; 
    position:absolute; 
    left:0; 
    bottom:20px; } 

#thumbnails { 
    width:100%; 
    height:80px; 
    display:none; } 

#thumbnails img { 
    margin:10px; 
    float:left; } 

jQuery

$(document).ready(function(){ 
    $("#trigger").hover(function() { 
     $(this).children("div").fadeTo(200, 1); 
    }, function(){ 
     $(this).children("div").fadeOut(200); 
    }); 
}); 

Ver el violín: http://jsfiddle.net/TheNix/Cjmr6/

+0

gracias, pero qué hay de hacer que esas imágenes sean visibles por defecto y luego aplicar el fundido en efectos de fundido de salida como en el ejemplo que he publicado en mi pregunta. –

+0

Simplemente elimine 'display: none;' en #thumbnails. Entonces, será visible en la carga, y se desvaneció en mouseoff. – Nix

+0

bueno, pero ¿cómo hacer esto también con la respuesta de Vigrond en la solución css3, alguna idea? –