Además de translate, existen otras funciones que permiten transformar el elemento HTML para iniciar una animación.
Rotate para transformaciones
Rotate es una función de la propiedad transform que te permite rotar un elemento HTML a través de los ejes del navegador. El valor que recibe es un ángulo, por ejemplo, ""45deg"" (45 grados) o ""2rad"" (2 radianes). Los ángulos positivos están en sentido horario, y los negativos en sentido antihorario.
selector{transform:rotate(45deg);}
Dependiendo del eje en el que rotes el elemento, existe una función.
Scale es una función de la propiedad transform que te permite escalar un elemento HTML a través de sus ejes. El valor que recibe es un número multiplicador al elemento original.
Si el elemento es igual a 1 entonces sigue como el original; mayor a 1 aumenta de tamaño; y, menor a 1 disminuye de tamaño.
selector{transform:scale(0.8);}
Dependiendo del eje en el que escales el elemento, existe una función.
Skew es una función de la propiedad transform que te permite torcer un elemento HTML a través de sus ejes en dos dimensiones. El valor que recibe es un ángulo para cada eje en el que el elemento se distorsionará.
selector{transform:skew(45deg,45deg);}
Dependiendo del eje en el que tuerzas el elemento, existe una función.
Solamente puede existir una sola propiedad transform en el código de CSS, por lo que si escribimos otra regla CSS con otra transformación, esta se sobreescribirá y solo ejecutará la última. Por ende, utiliza varias funciones en la misma propiedad transform para realizar varias transformaciones.
/*Mal (solo rotará el elemento)*/selector{transform:translate(100px,100px);transform:rotate(45deg);}
Les dejo este gif que les ayuda a visualizar mejor estos conceptos :3
!Rotate, Scale, Skew, Matrix
Rotate: Te ayuda a girar un elemento, puedes rotarlo en los ejes X, Y o Z.
Scale: Te ayuda a cambiar el tamañode un elemento, básicamente puedes agrandarlo o achicarlo.
Skew: Te ayuda a deformar un elemento tanto en X como en Y, esta propiedad es muy útil cando queires dar un efecto 3D.
Matrix: Esta es una propiedad un poquito máscompleja. Te permite escalar, deformar y mover tu elemento a través de diferentes propiedades, recomiendo darle un ojo a la documentación) de esta propiedad para entenderla mejor :D.
Gracias.
Como siempre tus aportes son muy valiosos ✨ gracias
te quedo muy genial, me va a servir para practicar ✨
Increíble @Sebastian!
No se me había ocurrido hacer un ejemplo como el tuyo donde se puedan visualizar las diferentes transformaciones que hemos estado viendo en estas ultimas 2 clases.
Muy buen ejercicio y aporte :)
Me imagine asi scale
jajaja
++Transform rotate, scale, skew y matrix++
Escalado (scale()): Estas hace como una transformación en la que aumentan o reducen el tamaño de un elemento, y se basan en el parámetro indicado, que es solo un factor de escala.
Rotaciones(rotate): Se podría decir que las funciones de rotación simplemente giran el elemento el número de grados indicado.
Ejemplo:
Con transform: rotate(5deg) realizamos una rotación de 5 grados del elemento sobre si mismo.Deformaciones(skew): Establecen un ángulo para torcer, tumbar o inclinar un elemento en 2D.
Cree un repositorio para hacer un mini resumen de las clases o implementas ahí algunos de los ejemplos vistos en clase. Lo dejo si quieren darse una vuelta: aqui
Excelente muchas gracais compañero
Wow bro te quedó excelente, una guía rápida y súper efectiva de como se puede implementar todo lo aprendido!
El vídeo tiene algún efecto o parece que esta mal renderizado. Se ven algunas lineas y manchas en el vídeo.
¡Hola, Andrew! Lo chequeé y tienes razón, gracias por reportar. Le haces mucho bien a esta comunidad 🙏
a estos cursos*
Hay un pequeño error aquí respecto al valor por defecto de rotate().
El eje que rota por defecto es el eje Z, pero como el eje Z está a la dirección de nuestra vista nos da esa alusión.
Un valor Y positivo ¿hacia dónde va? . Para mi es hacia arriba, pero al hacer el examen me conto la respuesta como error y me trajo hasta acá, donde no habla sobre ejes ni los movimientos de estos (?) en fin. He consultado y siempre me dicen lo mismo: Va hacia Arriba. ALguione me explica si estoy equivocada?
cuando el objeto va para abajo son valores positivos y para arriba son valores negativos pero eso solo pasa en el eje y, me di cuenta practicando y la verdad no se el porque, pero desde la practica para subir un objeto se restan pixeles, ejemplo si tengo una imagen muy abajo personalmente uso mucho el margin -x px y la posiciono donde quiero, quizás esta mal pero es la única solución que se.
Yo como me lo aprendi fue de la siguiente manera. Cuando me toca trabajar con valores en X o Y. Me imagino las fronteras o los 4 lados de dicho elemento. Cuando es una valor en Y positivo va a ir de arriba hacia abajo. Cuando el valor de Y es negativo, ira de abajo hacia arriba.
En el caso de X positiva ira de la izquierda hacia la derecha y si se trata de X negativa ira de la derecha hacia la izquierda.
No se si logre explicarme pero siempre me imagino esa caja en el elemento que sea y es como logro identificar hacia donde trasladara mi elemento dependiendo el valor que le daré.
Espero le sirva a alguien, saludos :)
Código
Hice mi ejercicio y todo bien, solo que me sucedió algo en el CSS, el div que está anidado se bajó unos 30px aprox al momento de meter todo el grupo a un section, esto lo hice para separarlos de las otras propiedades, no encontré la razón por la que esto sucedió, sólo que se resolvió al ponerle un borde. Esto se puede ver en la primera fila con los translate.
El ejercicio está aquí (https://codepen.io/Janet11/pen/yLXojEa?editors=1100)
Hola Janet ! Gracias por tu pregunta... Mira, lo que sucede es que todos las etiquetas h tienen un margin por defecto y este es el que hace que tu div anidado se baje. Puedes intentar quitándole el margin a los textos y listo !
Esta cool, pero se ve horrible sin transiciones. Ya quiero llegar a esa parte
6.-Transform rotate, scale, skew y matrix
Rotate: Te ayuda a girar un elemento, puedes rotarlo en los ejes X, Y o Z.
Scale: Te ayuda a cambiar el tamañode un elemento, básicamente puedes agrandarlo o achicarlo.
Skew: Te ayuda a deformar un elemento tanto en X como en Y, esta propiedad es muy útil cando queires dar un efecto 3D.
Matrix: Esta es una propiedad un poquito máscompleja. Te permite escalar, deformar y mover tu elemento a través de diferentes propiedades, recomiendo darle un ojo a la documentación) de esta propiedad para entenderla mejor 😄.
Transform puede recibir varios valores, como rotación, traslación, etc. No se puede colocar una propiedad transform debajo de otra ya que se sobrescriben, lo que se hace es que se coloca un valor alado del otro.
y el metodo matrix?
Hola Jorge !!! El método matrix recibe 6 parámetros matrix(a, b, c, d, tx, ty) donde a, b, c, d son números que describen una transformación y tx, ty son números que describen un traslado... Puedes explorar su funcionamiento aquí: https://www.w3schools.com/css/tryit.asp?filename=trycss3_transform_matrix1
me muero mi profe preferida respondiendo mi pregunta! genia total! Gracias!
Muchas gracias por compartir tu código, me sirvió. Solo que en el transform-rotate utilizaste la propiedad scale cuando en realidad debemos usar rotate. Les dejo el código
Solo vengo a decir que la reina roja es otro personaje de otro cuento. En alicia esa reina se llama reina de corazones jskjsksjs.
Un aspecto que vale la pena aclarar, es que en el minuto 8:33 de esta clase la profesora decide asignar el valor de rotateY(20deg) a la propiedad transform, cuyo resultado ella califica como chistoso, pero realmente se trata de un error, ya que la función rotate no separa los ejes X e Y. Esto se debe a que rotate() genera como resultado una única rotación alrededor de un punto de referencia que se establece en la propiedad transform-origin.
En este caso como la propiedad transform-origin no se especifica de forma explícita dentro del código de CSS, el navegador la carga con su valor predeterminado de center, que correponde al punto medio de la caja que aloja el elemento al que se le está aplicando la transformación.
Adicionalmente, una rotación completa corresponde a los 360 grados que tiene una circunferencia, por lo que tampoco tiene mucho sentido aplicar un valor como el 1000deg que se emplea en el minuto 9:09 de esta misma clase.
Buenisimo. Pensar que antes todo esto solo se podia hacer con JavaScript
Además de translate, hay varias otras propiedades de transformación en CSS:
transform: rotate(angle) permite rotar un elemento en un ángulo específico. El valor angle puede ser especificado en grados, radianes o turnos. Por ejemplo:
css
.element{transform:rotate(45deg);}
transform: scale(x, y) permite escalar un elemento en el plano x-y. Los valores x y y especifican el factor de escala en cada dirección. Por ejemplo:
css
.element{transform:scale(2,0.5);}
transform: skew(x, y) permite inclinar un elemento en el plano x-y. Los valores x y y especifican el ángulo de inclinación en cada dirección. Por ejemplo:
css
.element{transform:skew(30deg, 10deg);}
transform: matrix(a, b, c, d, e, f) permite combinar varias transformaciones en una sola propiedad. La matriz se compone de 6 valores que representan una matriz 3x3. Por ejemplo:
css
.element{transform:matrix(1,0,0,1,50,-30);}
La función skew() fue presentada en los primeros borradores. Esta ha sido removida pero sigue presente en algunas implementaciones. No debe usarse.
Para lograr el mismo efecto, utilice la función skewX(). Si tu estas usando skew () con un parámetro o matriz (1, tan (ay), tan (ax), 1, 0, 0). Ten en cuenta que tan() no es una función CSS y así que tu mismo tienes que precalcular tus valores.