2011-05-23 16 views
51

Usando transiciones CSS3, es posible tener un efecto 'suavizar' y 'suavizar' a cualquier propiedad.CSS3 transición unidireccional?

¿Puedo configurarlo para que tenga solo un efecto de "suavizado"? Me gustaría que la solución esté en CSS solamente, evitando JavaScript si es posible.

flujo lógico:

  • usuario hace clic en el elemento
  • Transición toma 0,5 segundos para cambiar el color de fondo de blanco a negro
  • usuario suelta el botón izquierdo del ratón
  • Transición lleva a 0.5s cambiar el color de fondo de negro a blanco

Lo que quiero:

  • usuario hace clic en el elemento
  • transición tiene 0s a cambiar
  • usuario suelta el botón del ratón
  • Transición toma 0,5 segundos para cambiar ...

No hay 'transición-in' tiempo, pero hay un tiempo de 'transición'.

Respuesta

88

Intenté lo siguiente en el editor Tryit CSS3 y funcionó en Chrome (12.0.742.60 beta-m).

/* transition out, on mouseup, to white, 0.5s */ 
 
input 
 
{ 
 
    background:white; 
 
    -webkit-transition:background 0.5s; 
 
    -moz-transition:background 0.5s; 
 
    -ms-transition:background 0.5s; 
 
    -o-transition:background 0.5s; 
 
    transition:background 0.5s; 
 
} 
 

 
/* transition in, on click, to black, 0s */ 
 
input:active 
 
{ 
 
    background:black; 
 
    -webkit-transition:background 0s; 
 
    -moz-transition:background 0s; 
 
    -ms-transition:background 0s; 
 
    -o-transition:background 0s; 
 
    transition:background 0s; 
 
}
<input type="button" value="click me to see the transition effect!">

+2

DOH! No puedo creer que esto no se me haya ocurrido ... ¡Por supuesto! La transición base se establece en 0s, y la transición de estado activo anula los valores base, y eso se establece en 0.5s ... Suspiro ... Necesito una taza de café ... – Abhishek

+8

En mi caso, quería una transición a demora/ocurre al pasar el mouse sobre el mouse, no al desplazarse hacia afuera. La solución fue más simple una vez que leí lo anterior: simplemente ponga una transición en la regla: flotar, no es necesario cancelar nada en ningún otro lado. Gracias por apuntar en la dirección correcta, con un claro ejemplo. – Schmuli

+0

Gracias por su respuesta, lo probé, pero funcionó para mí (en Chrome) cuando la transición se configuró al revés, no sé si las especificaciones han cambiado o algo así –

Cuestiones relacionadas