En aquest tema, aprendrem com modificar elements del DOM utilitzant D3.js. Aquesta habilitat és fonamental per crear visualitzacions dinàmiques i interactives. Ens centrarem en com canviar atributs, estils i contingut dels elements seleccionats.
Conceptes Clau
- Atributs: Propietats dels elements HTML, com ara
id
,class
,width
,height
, etc. - Estils: Propietats CSS que defineixen l'aparença dels elements, com ara
color
,font-size
,background-color
, etc. - Contingut: Text o HTML que es troba dins d'un element.
Modificant Atributs
D3.js proporciona el mètode .attr()
per modificar els atributs dels elements seleccionats.
Exemple
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Modificant Atributs amb D3.js</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <svg width="500" height="500"> <circle cx="50" cy="50" r="40"></circle> </svg> <script> // Seleccionem el cercle i modifiquem els seus atributs d3.select("circle") .attr("cx", 100) .attr("cy", 100) .attr("r", 50) .attr("fill", "blue"); </script> </body> </html>
Explicació
- Selecció:
d3.select("circle")
selecciona el primer element<circle>
del document. - Modificació d'Atributs: Utilitzem
.attr()
per canviar els atributscx
,cy
,r
ifill
del cercle.
Modificant Estils
Per modificar els estils CSS dels elements, utilitzem el mètode .style()
.
Exemple
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Modificant Estils amb D3.js</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <div id="myDiv">Hola, D3.js!</div> <script> // Seleccionem el div i modifiquem els seus estils d3.select("#myDiv") .style("color", "red") .style("font-size", "24px") .style("background-color", "yellow"); </script> </body> </html>
Explicació
- Selecció:
d3.select("#myDiv")
selecciona l'element<div>
amb l'idmyDiv
. - Modificació d'Estils: Utilitzem
.style()
per canviar els estilscolor
,font-size
ibackground-color
.
Modificant Contingut
Per modificar el contingut d'un element, utilitzem el mètode .text()
o .html()
.
Exemple
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Modificant Contingut amb D3.js</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <p id="myParagraph">Text original</p> <script> // Seleccionem el paràgraf i modifiquem el seu contingut d3.select("#myParagraph") .text("Text modificat amb D3.js"); </script> </body> </html>
Explicació
- Selecció:
d3.select("#myParagraph")
selecciona l'element<p>
amb l'idmyParagraph
. - Modificació de Contingut: Utilitzem
.text()
per canviar el text del paràgraf.
Exercicis Pràctics
Exercici 1
Modifica els atributs d'un rectangle SVG per canviar la seva posició, mida i color.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Exercici 1</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <svg width="500" height="500"> <rect width="100" height="100"></rect> </svg> <script> // Escriu el teu codi aquí </script> </body> </html>
Solució
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Exercici 1 - Solució</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <svg width="500" height="500"> <rect width="100" height="100"></rect> </svg> <script> // Seleccionem el rectangle i modifiquem els seus atributs d3.select("rect") .attr("x", 50) .attr("y", 50) .attr("width", 200) .attr("height", 200) .attr("fill", "green"); </script> </body> </html>
Exercici 2
Modifica els estils d'un paràgraf per canviar el seu color de text, mida de font i color de fons.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Exercici 2</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <p id="myParagraph">Text original</p> <script> // Escriu el teu codi aquí </script> </body> </html>
Solució
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Exercici 2 - Solució</title> <script src="https://d3js.org/d3.v7.min.js"></script> </head> <body> <p id="myParagraph">Text original</p> <script> // Seleccionem el paràgraf i modifiquem els seus estils d3.select("#myParagraph") .style("color", "blue") .style("font-size", "20px") .style("background-color", "lightgray"); </script> </body> </html>
Resum
En aquesta secció, hem après com modificar elements del DOM utilitzant D3.js. Hem vist com canviar atributs, estils i contingut dels elements seleccionats. Aquestes tècniques són essencials per crear visualitzacions dinàmiques i interactives. En el proper tema, explorarem com enllaçar dades als elements del DOM per crear visualitzacions basades en dades.
D3.js: De Principiant a Avançat
Mòdul 1: Introducció a D3.js
Mòdul 2: Treballant amb Seleccions
Mòdul 3: Dades i Escales
- Carregant i Analitzant Dades
- Utilitzant Escales de D3
- Escales Lineals i Ordinals
- Escales de Temps i Logarítmiques
Mòdul 4: Creant Visualitzacions Bàsiques
- Creant Gràfics de Barres
- Creant Gràfics de Línies
- Creant Gràfics de Pastís
- Creant Gràfics de Dispersió
Mòdul 5: Visualitzacions Avançades
- Creant Disposicions Jeràrquiques
- Creant Disposicions de Força
- Creant Mapes Geo
- Creant Visualitzacions Personalitzades
Mòdul 6: Interactivitat i Animació
Mòdul 7: Treballant amb Dades Reals
- Recuperant Dades d'APIs
- Neteja i Transformació de Dades
- Integració amb Altres Llibreries
- Estudis de Cas i Exemples
Mòdul 8: Rendiment i Optimització
- Optimitzant el Rendiment de D3.js
- Gestionant Grans Conjunts de Dades
- Enllaç de Dades Eficient
- Depuració i Resolució de Problemes
Mòdul 9: Millors Pràctiques i Tècniques Avançades
- Organització del Codi i Modularitat
- Components Reutilitzables
- Patrons Avançats de D3.js
- Contribuint a la Comunitat de D3.js