Les animacions de CSS permeten canviar les propietats CSS de manera gradual durant un període de temps. Això pot afegir dinamisme i interactivitat a les pàgines web, millorant l'experiència de l'usuari. En aquesta secció, aprendrem com crear animacions utilitzant CSS.
Conceptes Clau
- Propietat
@keyframes
@keyframesLa regla @keyframes defineix el comportament de l'animació. Especifica els estats inicials i finals de l'animació, així com els canvis intermedis.
- Propietat
animation
animationLa propietat animation aplica l'animació a un element. Té diverses sub-propietats que es poden especificar individualment o combinades en una sola línia.
Sub-propietats de animation:
animation-name: Nom de l'animació definida amb@keyframes.animation-duration: Durada de l'animació.animation-timing-function: Funció de temporització (ex.ease,linear,ease-in,ease-out,ease-in-out).animation-delay: Retard abans que comenci l'animació.animation-iteration-count: Nombre de vegades que es repeteix l'animació.animation-direction: Direcció de l'animació (normal,reverse,alternate,alternate-reverse).animation-fill-mode: Defineix com s'aplica l'animació abans i després de l'execució (none,forwards,backwards,both).animation-play-state: Estat de reproducció de l'animació (running,paused).
.example {
animation-name: example;
animation-duration: 4s;
animation-timing-function: ease-in-out;
animation-delay: 1s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-fill-mode: forwards;
}
- Sintaxi Combinada
És possible combinar totes les sub-propietats en una sola línia per simplificar el codi.
Exemple Pràctic
HTML
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Animacions de CSS</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="box"></div> </body> </html>
CSS
/* Definició de l'animació */
@keyframes move {
0% { transform: translateX(0); }
50% { transform: translateX(100px); }
100% { transform: translateX(0); }
}
/* Aplicació de l'animació */
.box {
width: 100px;
height: 100px;
background-color: blue;
animation: move 3s ease-in-out infinite;
}Explicació
- La regla
@keyframes movedefineix una animació que mou l'element horitzontalment. - L'element amb la classe
.boxté una animació aplicada que dura 3 segons, utilitza la funció de temporitzacióease-in-outi es repeteix infinitament.
Exercicis Pràctics
Exercici 1: Canviar el Color de Fons
Crea una animació que canviï el color de fons d'un element de blau a verd i després a vermell en un cicle infinit.
Solució
@keyframes colorChange {
0% { background-color: blue; }
50% { background-color: green; }
100% { background-color: red; }
}
.color-box {
width: 100px;
height: 100px;
animation: colorChange 5s infinite;
}Exercici 2: Rotació d'un Element
Crea una animació que faci girar un element 360 graus.
Solució
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.rotate-box {
width: 100px;
height: 100px;
background-color: purple;
animation: rotate 2s linear infinite;
}Errors Comuns i Consells
Errors Comuns
- Oblidar
@keyframes: Assegura't de definir la regla@keyframesabans d'aplicar l'animació. - No especificar
animation-duration: Sense una durada, l'animació no es reproduirà. - Utilitzar noms d'animació incorrectes: El nom de l'animació en
animation-nameha de coincidir exactament amb el nom definit en@keyframes.
Consells
- Utilitza
animation-fill-modeper mantenir l'estat final: Això evita que l'element torni al seu estat inicial després de l'animació. - Experimenta amb
animation-timing-function: Diferents funcions de temporització poden canviar dràsticament l'aparença de l'animació.
Conclusió
Les animacions de CSS són una eina poderosa per afegir interactivitat i dinamisme a les pàgines web. Amb la comprensió de les propietats bàsiques i la pràctica amb exemples, pots crear animacions atractives i eficients. En el següent tema, explorarem les transformacions de CSS per modificar l'aparença i la posició dels elements de manera més avançada.
Domini del CSS: De Principiant a Avançat
Mòdul 1: Introducció al CSS
- Què és el CSS?
- Sintaxi i Selectors de CSS
- Com Afegir CSS a HTML
- Propietats Bàsiques de CSS
- Colors en CSS
- Unitats i Mesures en CSS
Mòdul 2: Estilització de Text i Fonts
- Propietats de Text
- Propietats de Fonts
- Integració de Google Fonts
- Alineació i Espaiat de Text
- Decoració i Transformació de Text
Mòdul 3: Model de Caixa i Disseny
- Comprendre el Model de Caixa
- Marge i Farciment
- Vora i Contorn
- Amplada i Alçada
- Dimensionament de Caixa
- Propietat de Visualització de CSS
Mòdul 4: Posicionament i Flotació
- Propietat de Posició de CSS
- Posicionament Estàtic, Relatiu, Absolut i Fix
- Flotació i Neteja de CSS
- Crear Dissenys amb Flotació
- Índex Z de CSS
Mòdul 5: Flexbox
- Introducció a Flexbox
- Propietats del Contenidor Flex
- Propietats dels Elements Flex
- Crear Dissenys amb Flexbox
- Disseny Responsiu amb Flexbox
Mòdul 6: CSS Grid
- Introducció a CSS Grid
- Propietats del Contenidor Grid
- Propietats dels Elements Grid
- Crear Dissenys amb CSS Grid
- Disseny Responsiu amb CSS Grid
Mòdul 7: Tècniques Avançades de CSS
Mòdul 8: Disseny Responsiu
- Introducció al Disseny Responsiu
- Consultes de Mitjans
- Tipografia Responsiva
- Imatges Responsives
- Disseny Mobile-First
Mòdul 9: Preprocessadors i Frameworks
- Introducció als Preprocessadors de CSS
- Conceptes Bàsics de Sass
- Conceptes Bàsics de Less
- Introducció als Frameworks de CSS
- Ús de Bootstrap
Mòdul 10: Millors Pràctiques i Optimització
- Millors Pràctiques de CSS
- Organització del Codi CSS
- Minificació de CSS
- Optimització del Rendiment de CSS
- Depuració de CSS
