Logotipo de Xitrus.
sígueme en facebook

Sígueme

R L E F G I

Buscar

Cargando

Lo último del blog

Twitter

Hosting

Xitrus está alojado en:

Xitrus está alojado en Cyberneticos.

Transiciones (transition)

Esta documentación explica como hacer transiciones sutiles y fáciles

El parámetro transition es un parámetro de CSS3 y CSS2 UI, es decir, que lo implementan navegadores por separado.
Para usarlo hay la forma estándar establecida por W3 y las propias de los navegadores, por ese motivo por motivos de compatibilidad mejor establecer todas juntas, ya que si una no funciona otra si lo hará.

La mayoría de los navegadores son compatible, pero Internet Explorer no (en su versión 9).

  1. /* Parámetro estándar */
  2. transition:

  3. /* Parámetros según navegador */
  4. -webkit-transition:/* Chrome y Safari */
  5. -moz-transition:/* Mozilla */
  6. -o-transition:/* Opera */

Como funciona

Realmente lo que hace este parámetro es detectar los cambios en el estilo, ya sea añadirle un estilo o sea una modificación por pasar por encima (:hover).
Realmente coge el parámetro anterior y pasa al siguiente de forma progresiva en el tiempo establecido.
Debe de establecerse el transition en el elemento origen, no es recomendable hacerlo en el destino (:hover) o cambiando la clase.

Este es un ejemplo de estilos con transition y su procedimiento

  1. /* Estilo de un DIV con la clase TRA */
  2. .TRA{
  3. width:100px;
  4. height:100px;
  5. background:#099;
  6. }

  7. /* Estilo que se aplica al pasar por encima de la DIV con clase TRA */
  8. .TRA:hover{
  9. width:200px;
  10. height:200px;
  11. background:#990;
  12. }


Con el código de arriba añadiéndole una transición aumentaría de tamaño progresivamente el DIV y cambiaría su color de fondo también de forma progresiva.

Parámetros de transition

Transition tiene distintos parámetros, que se pueden especificar por separado, o juntos (como hace background y background-color, por ejemplo).
El parámetro transition tiene los siguientes parámetros (que después se explicarán por separado):

  1. transition: [Propiedades] [Tiempo] [Función de Tiempo] [Retardo];


Los parámetros que usamos en transition son los siguientes:
  • Propiedades: En este parámetro establecemos que propiedad queremos que modifique, como width, height... pero solo podemos poner una, por eso se puede usar la la propiedad "all", que sirve para seleccionar todas y se recomienda usarla preferentemente.
  • Tiempo: Este parámetro establece el tiempo que tarda en hacerse la animación en segundos (su unidad es s), es decir si queremos que dure un segundo tenemos que poner "1s".
  • Función de tiempo: Este parámetro establece la curva de aceleración de la transición, es decir, si empieza más rápido y o más despacio o es un avance lineal, sin variar la aceleración.
    Este parámetro tiene varias funciones de tiempo preestablecida: lineal, ease, ease-in... Por defecto usa el ease, y es el más recomendado, consiste en un comience lento y una terminación lenta, acelerándose en la parte media.
  • Retardo: En este parámetro podemos establecer el tiempo que tarda en empezar la transición, en segundos.


  • Ejemplo funcional de una transición

    En el siguiente ejemplo veremos como un DIV irá de un lado al otro y cambiará su tamaño y color cuando pasemos por encima de su contenedor.



    El código HTML:

    1. <div class="TRA_CONT">
    2. <div> <!-- Este DIV es el que se mueve -->
    3. </div>
    4. </div>


    El código CSS:

    1. /* Este estilo es el del DIV que esta dentro de div.TRA_CONT */
    2. .TRA_CONT div{
    3. width:10%;
    4. height:80px;
    5. margin-left:0%;
    6. background:#0F0;
    7. -webkit-transition:all 1s ease;
    8. -moz-transition:all 1s ease;
    9. -o-transition:all 1s ease;
    10. transition:all 1s ease;
    11. }

    12. /* Estilo que se aplica al pasar por encima de la DIV con clase TRA */
    13. .TRA_CONT:hover div{
    14. width:20%;
    15. margin-left:80%;
    16. background:#F00;
    17. }


    Que significa:

    El código anterior muestra los parámetros que tiene al principio el DIV y muestra los que tiene al pasar por encima.
    El movimiento lateral se puede hacer, como en este caso, con el margin-left o con parámetro de posición (left,top...), el ensanche de el DIV se hace con el width y el color cambia por el background.

    El contenido de transition:

    El contenido del parámetro ("all 1s ease") nos indica en primer lugar que queremos hacer la transición con todos los parámetros (estableciendo "all"), en segundo lugar especificamos la duración de un segundo (con "1s"), también especificamos la función de tiempo que realiza, usando "ease" (que va mas lento a principio y fin de el movimiento) y por último podríamos haber establecido el retardo, especificándolo en segundos.

    Propiedades de transition por separado

    Para usar estas formas individuales también tenemos que ponerles el prefijo para cada navegador (-webkit-, -moz- y -o-):
  • transition-property: Este parámetro sirve para establecer los parámetros que serán afectados por la transición, es decir, si solo queremos que se cambie el width y el margin debemos de establecer en su contenido "width, margin", separando con comas si existe mas de un parámetro que va a ser afectado.
  • transition-duration: Estableciendo este parámetro podemos cambiar individualmente el tiempo de la transición, estableciéndolo en segundos (por ejemplo 0.5s o 2s).
  • transition-timing-function: Con este parámetro establecemos la curva de velocidad, pudiendo elegir entre varios preestablecidos (lineal,ease,ease-in,ease-out...).
  • transition-delay: Con este parámetro establecemos el retardo con segundos, por ejemplo, si queremos que empiece medio segundo tarde establecemos 0.5s.


  • Nota: Se pueden usar todas juntas con el transition, como en el primer ejemplo.

    Integración con eventos

    Con transition todos los cambios (siempre que estén definidos en las propiedades que se animarán) que hagamos con eventos JavaScript se harán de forma progresiva como con las demás transiciones.



    El código HTML:

      Los botones con los eventos
    1. <input type="button" onclick="document.getElementById('cuadro_tra').style.width='20%'" value="20%">
    2. <input type="button" onclick="document.getElementById('cuadro_tra').style.width='40%'" value="40%">
    3. <input type="button" onclick="document.getElementById('cuadro_tra').style.width='60%'" value="60%">

    4. La etiqueta DIV que cambia de tamaño
    5. <div id="cuadro_tra"></div>


    El código CSS:

    1. #cuadro_tra{
    2. width:20%;
    3. -webkit-transition:all 1s ease;
    4. -moz-transition:all 1s ease;
    5. -o-transition:all 1s ease;
    6. transition:all 1s ease;
    7. }


    Ejemplos funcionales

    Menús

    Un ejemplo con un posible menú de Coca-Cola:

    Nuestra Coca-Cola
    Productos
    Tipos
    Congresos de la Felicidad
    Instituto de la Felicidad
    Estadísticas
    Music Experience
    Copa Coca-Cola
    Disfruta con Coca-Cola


    Algo bastante utilizado son las pestañas:



    EL código HTML:

    1. <div class="MENU_pestañas">
    2. <li>Inicio</li>
    3. <li>CSS</li>
    4. <li>JavaScript</li>
    5. <li>PHP</li>
    6. </div>


    El código CSS:

    1. .MENU_pestañas li{
    2. position:relative;
    3. float:left;
    4. list-style:none;
    5. width:140px;
    6. height:26px;
    7. padding-top:15px;
    8. text-align:center;
    9. background:#999;
    10. color:#FFF;
    11. border:1px solid #555;
    12. font-weight:bold;
    13. text-shadow:1px 1px 0px #000;
    14. border-radius:10px 10px 0px 0px;
    15. -webkit-border-radius:10px 10px 0px 0px;
    16. -moz-border-radius:10px 10px 0px 0px;
    17. -webkit-transition:all 1s ease 1s;
    18. -moz-transition:all 1s ease 1s;
    19. -o-transition:all 1s ease 1s;
    20. transition:all 1s ease 1s;
    21. }

    22. .MENU_pestañas li:hover{
    23. background:#9A44A6;
    24. border-bottom-color:transparent;
    25. z-index:2;
    26. box-shadow:2px -2px 4px rgba(0,0,0,0.4);
    27. -webkit-transition:all 1s ease;
    28. -moz-transition:all 1s ease;
    29. -o-transition:all 1s ease;
    30. transition:all 1s ease;
    31. }


    Comentarios

    Sígueme

    R L E F G I

    Buscar

    Cargando

    Lo último del blog

    Twitter

    Hosting

    Xitrus está alojado en:

    Xitrus está alojado en Cyberneticos.
    Cerrar sesión
    Usuario: Contraseña: