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
@keyframes
La regla @keyframes
defineix el comportament de l'animació. Especifica els estats inicials i finals de l'animació, així com els canvis intermedis.
- Propietat
animation
animation
La 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 move
defineix una animació que mou l'element horitzontalment. - L'element amb la classe
.box
té una animació aplicada que dura 3 segons, utilitza la funció de temporitzacióease-in-out
i 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@keyframes
abans 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-name
ha de coincidir exactament amb el nom definit en@keyframes
.
Consells
- Utilitza
animation-fill-mode
per 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