CSS Transformaciones y transiciones

Inicio este articulo con la explicaciรณn bรกsica de las cuatro funciones de translaciรณn (Transform: Translate) que son: traslate, rotate, scale y skew. Con estas funciones inciamos un proceso de ejemplo.

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Ejemplo 1 CSS TRANSFORM</title>

</head>

<body>

<p> <img src="images/juan.jpg" alt="Juan" style="width:300px; height:300px; float:left; margin:0 2em 1.4em 0;"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, molestiae? Voluptas sequi, aliquam, vel officiis consectetur distinctio non, itaque nihil ipsa omnis debitis velit esse quas blanditiis aspernatur molestias dicta! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Impedit consequatur eligendi in explicabo suscipit soluta eaque, vitae nostrum! Porro in dolorum tempora accusamus eveniet quae amet laborum ad dolore reprehenderit.

</p>

</body>

</html>
Captura de pantalla 2015-01-07 a las 16.37.42
Figura No 1

 

Ahora con esta pagina bรกsica iniciamos con las transformaciones.

ROTATE

Incluimosย  todos los prefijos de vendor para cubrir todos los navegadores, como veran transformaremos la imagen rotรกndola sutilmente 7.5 grados, en sentido de las manecillas de reloj en caso contrario usaremos valores negativos.

<img src="images/juan.jpg" alt="Juan" style="width:300px; height:300px; float:left; margin:0 2em 1.4em 0; 
-moz-transform: rotate(7.5deg); 
-ms-transform: rotate(7.5deg); 
-0-transform: rotate(7.5deg); 
-webkit-transform: rotate(7.5deg); 
transform: rotate(7.5deg);โ€>Figura No 2
Captura de pantalla 2015-01-07 a las 16.48.11
Figura No 2

Ahora haremos una clase para tener mas control y tomaremos como punto o pivote de rotaciรณn una de las esquinas de la imagen en este caso la esquina superior derecha, y desde ahi haremos que la imagen gire,ย  uno 10 grados en contra de las manecillas del reloj.

<style>

img.tipo{

width:300px; height:300px; float:left;

-moz-transform-origin: right top;

ย  ย  -o-transform-origin: right top; -ms-transform-origin: right top;

ย  ย  -webkit-transform-origin: right top; transform-origin; right top;

-moz-transform: rotate(-10deg);

-ms-transform: rotate(-10deg);

-o-transform: rotate(-10deg);

-webkit-transform: rotate(-10deg);

transform: rotate(-10deg);

}

</style>

<body>

<p> <img src="images/juan.jpg" alt="Juan" style=" margin:0 2em 1.4em 0;" class="tipo" >

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, molestiae? Voluptas sequi, aliquam, vel officiis consectetur distinctio non, itaque nihil ipsa omnis debitis velit esse quas blanditiis aspernatur molestias dicta! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Impedit consequatur eligendi in explicabo suscipit soluta eaque, vitae nostrum! Porro in dolorum tempora accusamus eveniet quae amet laborum ad dolore reprehenderit.

</p>

 

Captura de pantalla 2015-01-07 a las 17.03.06
Figura No 3

SCALE

El uso de la transormacion SCALE podrรก parecer algo inรบtil si lo podemos hacer en una imagen con height y width, Pero no es para eso, la utilidad de scale es que lo podemos utilizar en cualquier elemento HTML por ejemplo, si cambiamos el ancho de un parrafo el texto contenido en el tomara el espacio nuevo, con scaleย  se harรก el texto mas grande o mas pequeรฑo, por ejemplo si usamos : scale(2) el elemento donde lo apliquemos serรก dos veces mas ancho y mas alto, esto es cuatro veces su tamaรฑo original y si lo escalamos .5 serรก un cuarto de su tamaรฑo original. Pero la magia viene cuando puedes aplicar scaleย  en una direcciรณn especifica: X (Horizontal), Y (Vertical) y Z (Profundidad).

Por lo que podemos usar scale para generar un efecto de espejo en cualquier elemento HTML tal y como se muestra el la figura no 4.

<style>

img.tipo{

width:300px; height:300px;

-moz-transform: scaleX(-1);

-o-transform: scaleX(-1);

-ms-transform: scaleX(-1);

-webkit-transform: scaleX(-1);

transform: scaleX(-1);

}

</style>

<body>

<p> <img src="images/juan.jpg" alt="Juan" class="tipo" >
614683_10151959921055564_2122795954_o
Figura No 4


TRASLATEย 

Pude parecer algo inรบtil tenerย  otro metodo que parece hacer exactamente lo mismo , ya que con el mรฉtodo translate ( ), el elemento se mueve desde su posiciรณn actual , en funciรณn de los parรกmetros dados para la izquierda (eje X) y la parte superior (eje Y ) Posiciรณn :

div {

ย  ย  -ms-transform: translate(50px,100px); /* IE 9 */

ย  ย  -webkit-transform: translate(50px,100px); /* Chrome, Safari, Opera */

ย  ย  transform: translate(50px,100px);

}

 

SKEW

Utilizar skew en un elemento nos permite nos permite modificar la inclinaciรณn tanto horizontal como vertical para que darnos una sensaciรณn de movimiento, esto es como tomar los dos lados opuestos de un rectรกngulo desde sus orillas y jalarlos en direcciones opuestas.

<style>

img.tipo{

width:300px; height:300px;

-moz-transform: skewX(21deg);

-o-transform: skewX(21deg);

-ms-transform: skewX(21deg);

-webkit-transform: skewX(21deg);

transform: skewX(21deg);

}

</style>
Captura de pantalla 2015-01-07 a las 18.03.07
Figura no 5

 

TRANSICIONES CSS

Una transiciรณn CSS es exactamente eso: una transiciรณn de un estado visual a otro, disparado por un evento como por ejemplo un MouseOver. Usaremos un ejemplo usando :hover para mostrar el resultado de una transiciรณn simple como es una rotaciรณn de la imagen.

img.tipo:hover{

-moz-transform: rotate(7.5deg); -o-transform: rotate(7.5deg);

-ms-transform: rotate(7.5deg); -webkit-transform: rotate(7.5deg);

ย  ย  transform: rotate(7.5deg);

}
Mouse Over para ejemplo
TEST 1

 

En este ejemplo Test 1. ย se ve como al poner el mouse sobre la imagen esta 7.5 grados en el sentido de las manecillas del reloj, sin embargo se ve a manera de un brinco, no como una animacion.

img.tipo:hover{

-moz-transform: rotate(7.5deg); -o-transform: rotate(7.5deg);

-ms-transform: rotate(7.5deg); -webkit-transform: rotate(7.5deg);

ย  ย  transform: rotate(7.5deg);

ย  ย  -moz-transition: 2s all; -o-transition: 2s all;

ย  ย  -webkit-transition: 2s all; transitio: 2s all;

}
Mouse Over para ejemplo
Test 2

 

Ahora cambia verdad,ย  le hemos dado un tiempo de transiciรณn de 2 segundos, a todos los elementos, logrando asรญ una animaciรณn bรกsica, en caso de necesitar muchรญsima mas precisiรณn, como seria el caso de animaciones finas se puede hacer con milisegundos. asรญ como 200ms all,

Pero si nos ponemos un poco ridรญculos podemos ver como al quitar el :hover o mejor dicho al quitar el mouse de sobre la imagen esta regresa a su formato original de manera de brinco, o sin animaciรณn, esto lo podemos cambiar poniendo la transiciรณn en la clase tipo, que es la imagenย  sin movimiento de esta manera.

<style>

img.tipo{

width:300px; height:300px; float:left;

-moz-transition: 2s all; -o-transition: 2s all;

ย  ย  -webkit-transition: 2s all; transitio: 2s all;

}

img.tipo:hover{

-moz-transform: rotate(7.5deg); -o-transform: rotate(7.5deg);

-ms-transform: rotate(7.5deg); -webkit-transform: rotate(7.5deg);

ย  ย  transform: rotate(7.5deg);

ย  ย  -moz-transition: 2s all; -o-transition: 2s all;

ย  ย  -webkit-transition: 2s all; transition: 2s all;

}
Mouse Over ejemplo
Test 3

 

Ahora ya tenemos la transiciรณn de ida y de vuelta por decirlo de alguna manera.ย  Esto nos da una idea bรกsica de todo lo que se puede hacerย  combinando las transformaciones con las transiciones en cualquier elemento, esto es que con imaginaciรณn podemos hacer cosas muy interesantes.

RETRASO Y COMBINACION DE TRANSICIONES.

Ahora te tenemos una animaciรณn simple podemos ver como podemos utilizar retrasos delay o otras combinaciones interesantes.

<style>

img.tipo{

width:300px; height:300px; float:left;

-moz-transition: 2s all; -o-transition: 2s all;

ย  ย  -webkit-transition: 2s all; transitio: 2s all;

}

img.tipo:hover{

-moz-transform: rotate(7.5deg); -o-transform: rotate(7.5deg);

-ms-transform: rotate(7.5deg); -webkit-transform: rotate(7.5deg);

ย  ย  transform: rotate(7.5deg);

/* ย  -moz-transition: 2s all; -o-transition: 2s all;

ย  ย  -webkit-transition: 2s all; transition: 2s all;*/

opacity: .3;

}

</style>

En este ejemplo podemos ver como al mismo tiempo que se realiza la rotaciรณn de la imagen se va generando el efecto de opacidad.

Mouse Over
Test 4

Pero vamos a ponerle un poco mas de complejidad, ahora vamos a mover la imagen a la derecho creando un efecto de opacidad,ย  moviendo la imagen 60 pixeles a la derecha, esto gracias a su posiciรณn absoluta como eran en el codigo.

img.tipo{

width:300px; height:300px; float:left; position: realtive;

-moz-transition-property: opacity, left;

-o-transition-property: opacity, left;

ย  ย  -webkit-transition-property: opacity, left;

ย  ย  transition-property: opacity, left;

-moz-transition: 2s, 4s; -o-transition: 2s, 4s;

ย  ย  -webkit-transition: 2s, 4s; transitio: 2s, 4s;

}

img.tipo:hover{

opacity: .2;

-webkit-transform: translateX(60px);

-moz-transform: translateX(60px);

-ms-transform: translateX (60px);

-o-transform: translateX(60px);

transform: translateX(60px);

}
Mouse Over
Test5

Eso es todo por el dรญa de hoy, espero les haya sido de utilidad este simple y pequeรฑo calentamiento de neuronas.

 

Search

Tags

Todavรญa no hay contenido que mostrar aquรญ.

Shop

Categories