๐ Benvenuto nella Prima Lezione!
Ciao futuro developer! ๐ Sei pronto per la tua prima avventura con JavaScript?
In questa lezione non leggerai teoria noiosa per ore. NO! Dalla prima riga di codice vedrai JavaScript fare cose VISIBILI sul tuo schermo. Cambiare colori, far apparire testo, reagire ai tuoi click.
Perchรฉ? Perchรฉ vedere รจ credere e fare รจ imparare.
๐ฏ Cosa Imparerai
- โ Come selezionare elementi HTML con JavaScript
- โ Come reagire ai click dell'utente
- โ Come modificare testo e colori della pagina
- โ Come far apparire e scomparire elementi
- โ Come creare il tuo primo progetto interattivo
๐ Demo Interattiva: Vedi la Magia
Prima di spiegare come funziona, guarda cosa puoi fare con JavaScript!
Clicca i bottoni qui sotto e osserva cosa succede ๐
Ciao! Sono un elemento HTML ๐
Clicca i bottoni per vedere cosa posso fare!
๐ค Cosa รจ successo?
Hai appena visto JavaScript in azione! Con poche righe di codice puoi:
- Cambiare i colori degli elementi
- Modificare il testo in tempo reale
- Far apparire elementi nascosti
- Creare interazioni fluide
E questa รจ solo la punta dell'iceberg! Ora scopriamo come funziona.
๐ก Come Funziona: JavaScript e il DOM
Cos'รจ il DOM?
DOM significa Document Object Model (Modello a Oggetti del Documento). Suona complicato? Non lo รจ! Pensa al DOM come a un albero genealogico della tua pagina web.
JavaScript puรฒ "toccare" qualsiasi elemento di questo albero e modificarlo. ร come avere il controllo remoto della tua pagina web! ๐ฎ
๐บ Analogia: JavaScript รจ il Telecomando
Immagina la tua pagina web come una TV:
- HTML รจ lo schermo (la struttura)
- CSS รจ lo stile dell'immagine (colori, layout)
- JavaScript รจ il telecomando (controlli, interazioni)
Con JavaScript puoi "premere bottoni" per cambiare canale (contenuto), alzare il volume (effetti), cambiare colori, e molto altro!
๐ฏ Passo 1: Selezionare Elementi HTML
Prima di modificare un elemento, devi "afferrarlo" con JavaScript. ร come dire: "Ehi JavaScript, prendi quel bottone lรฌ!"
Il Metodo: querySelector()
// Seleziona un elemento con la classe "bottone"
const mioBottone = document.querySelector('.bottone');
// Seleziona un elemento con l'ID "titolo"
const mioTitolo = document.querySelector('#titolo');
// Seleziona il primo paragrafo della pagina
const primoParagrafo = document.querySelector('p');
๐ Spiegazione Riga per Riga
-
document= La tua pagina web completa -
.querySelector()= Metodo per "cercare" un elemento -
'.bottone'= Cerca una classe (nota il punto) -
'#titolo'= Cerca un ID (nota il cancelletto) -
'p'= Cerca un tag HTML (senza simboli)
๐ Struttura HTML da Usare
Ecco il paragrafo che devi selezionare con JavaScript:
<p class="testo-speciale" id="testoSelezionabile">
๐ Ciao! Sono un paragrafo che aspetta di essere selezionato!
</p>
.testo-specialeโ Seleziona per classe#testoSelezionabileโ Seleziona per IDpโ Seleziona per tag
โ๏ธ Prova Tu: Seleziona l'Elemento
Usa uno dei selettori sopra per selezionare il paragrafo!
๐ Ciao! Sono un paragrafo che aspetta di essere selezionato!
โก Passo 2: Reagire ai Click
Ora che sai come selezionare elementi, impariamo a far succedere qualcosa quando l'utente ci clicca sopra!
Il Metodo: addEventListener()
// 1. Seleziona il bottone
const bottone = document.querySelector('.mio-bottone');
// 2. Ascolta il click
bottone.addEventListener('click', function() {
alert('Hai cliccato il bottone! ๐');
});
๐ Come Funziona?
-
addEventListener = "Ascoltatore di eventi"
Dice a JavaScript: "Stai attento a questo elemento!" -
'click' = Il tipo di evento da ascoltare
Altri esempi: 'mouseover', 'keypress', 'scroll' -
function() { ... } = Cosa fare quando succede l'evento
Il codice dentro le graffe {} viene eseguito al click
๐ Struttura HTML da Usare
Ecco il bottone su cui aggiungerai l'evento click:
<button class="test-button" id="bottoneCliccabile">
๐ฏ Cliccami!
</button>
.test-buttonโ Seleziona per classe#bottoneCliccabileโ Seleziona per ID
๐ก Ricorda: Usa addEventListener('click', function() {...})
โ๏ธ Prova Tu: Crea un Click Event
Scrivi il codice per far apparire un alert quando clicchi il bottone:
โ๏ธ Passo 3: Modificare Testo e Stile
Ora la parte divertente! Cambiamo il contenuto e l'aspetto degli elementi.
Modificare il Testo
// Seleziona un titolo
const titolo = document.querySelector('h1');
// Cambia il testo
titolo.textContent = 'Nuovo Titolo! ๐';
// O usa innerHTML per inserire HTML
titolo.innerHTML = 'Testo con <strong>grassetto</strong>!';
textContent
โ Solo testo puro
โ Piรน sicuro
โ No formattazione HTML
innerHTML
โ Supporta HTML
โ Piรน flessibile
โ ๏ธ Attenzione alla sicurezza
Modificare lo Stile
// Seleziona un elemento
const box = document.querySelector('.box');
// Cambia il colore di sfondo
box.style.backgroundColor = 'blue';
// Cambia il colore del testo
box.style.color = 'white';
// Cambia la dimensione del testo
box.style.fontSize = '24px';
// Cambia piรน proprietร insieme
box.style.cssText = 'background: blue; color: white; padding: 20px;';
background-colorโbackgroundColorfont-sizeโfontSizemargin-topโmarginTop
๐ Struttura HTML da Usare
Ecco il box che modificherai con JavaScript:
<div class="modifiable-box" id="modificaBox">
Sono un box modificabile!
</div>
.modifiable-boxโ Seleziona per classe#modificaBoxโ Seleziona per ID
๐ก Obiettivo: Cambia il testo usando .textContent e il colore usando .style.backgroundColor
โ๏ธ Prova Tu: Modifica Stile e Testo
Cambia il testo e il colore di sfondo del box:
โ๏ธ Esercizio Guidato: Il Bottone Che Cambia Tutto
Mettiamo insieme tutto quello che hai imparato! Creiamo un bottone che, quando cliccato, cambia il testo di un titolo e il colore di un box.
๐ Passi da Seguire
- Seleziona il bottone, il titolo e il box usando
querySelector - Aggiungi un evento
clickal bottone conaddEventListener - Quando viene cliccato:
- Cambia il testo del titolo in "Cambiato! ๐" usando
.textContent - Cambia il colore del box in verde (#55efc4) usando
.style.backgroundColor
- Cambia il testo del titolo in "Cambiato! ๐" usando
๐ Struttura HTML da Usare
Ecco l'HTML che devi controllare con JavaScript. Nota bene gli id:
<!-- Il titolo da modificare -->
<h3 id="titoloEsercizio">Questo titolo cambierร </h3>
<!-- Il box da colorare -->
<div id="boxEsercizio">
Questo box cambierร colore
</div>
<!-- Il bottone su cui cliccare -->
<button id="btnCambia">
โจ Clicca per Cambiare
</button>
#titoloEsercizioโ Il titolo h3#boxEsercizioโ Il box div#btnCambiaโ Il bottone
Questo titolo cambierร
๐พ Esercizi Pratici da Scaricare
Vuoi praticare sul tuo computer? Ho preparato 3 esercizi progressivi che puoi scaricare e completare offline, sul tuo PC!
Ogni esercizio include HTML e CSS giร pronti - tu devi solo completare il JavaScript seguendo le istruzioni nei commenti! ๐
Scarica Tutti gli Esercizi
3 esercizi progressivi per praticare click, stili e eventi
๐ฅ Scarica ZIP (120 KB)
Scompatta lo ZIP, apri index.html di un esercizio e inizia a programmare!
๐ฑ๏ธ Il Mio Primo Click
Crea un bottone che cambia il testo di un paragrafo quando lo clicchi. Imparerai querySelector, addEventListener e textContent.
๐จ Cambio Colori
Un bottone che cambia il colore di sfondo e il colore del testo di un box. Imparerai a modificare gli stili CSS con JavaScript.
๐ฎ Bottoni Multipli
Tre bottoni che modificano tre elementi diversi in modo indipendente. Metti insieme tutto quello che hai imparato!
๐ Come Usare gli Esercizi Scaricati
- ๐ฆ Scompatta lo ZIP sul tuo computer in una cartella a tua scelta
-
๐ Entra nella cartella di un esercizio (es:
esercizio-01-primo-click) -
๐ Apri
index.htmlnel browser (doppio click) - ๐ Leggi gli obiettivi e le istruzioni nella pagina
-
๐ป Apri
script.jscon un editor di testo (VS Code, Notepad++) - โ๏ธ Completa il codice dove vedi i commenti guida
- ๐พ Salva e ๐ ricarica la pagina HTML per testare
- ๐ Debug con F12 - usa la Console per vedere eventuali errori
๐ฆ Cosa Include il Download
Struttura giร pronta e funzionante
Design moderno e responsive
Commenti step-by-step per guidarti
Hints nella pagina quando serve
Sai quando l'hai fatto bene
Guida completa e troubleshooting
๐ก Pro Tips per gli Esercizi
Quando usi querySelector(), non dimenticare il # davanti agli ID!
document.querySelector('#mioId') โ
Premi F12 nel browser โ scheda "Console" per vedere eventuali errori
background-color diventa backgroundColor in JavaScript
Ogni volta che modifichi script.js, salva (Ctrl+S) e ricarica la pagina (F5)
๐ Pronto a Praticare?
Scarica gli esercizi e metti in pratica tutto quello che hai imparato!
๐ฅ Scarica Esercizi (120 KB)Ricorda: sbagliare รจ parte dell'apprendimento! ๐ช
๐ Nuovi Strumenti per il Progetto Finale
Prima di iniziare il progetto finale, vediamo tre concetti nuovi che userai! ๐
Nel progetto incontrerai codice con .forEach(), () => {} e dataset.
Non preoccuparti, ti spiego tutto in modo semplice!
forEach() - Il "Per Ogni"
๐ค Pensa a una squadra di calcio:
Se l'allenatore dice: "Per ogni giocatore, fai 10 flessioni!"
Ogni giocatore esegue l'azione. Questo รจ forEach!
// Abbiamo 3 paragrafi nella pagina
const paragrafi = document.querySelectorAll('p');
// Vogliamo cambiare il colore del testo di OGNI paragrafo
paragrafi.forEach(function(paragrafoSingolo) {
// Questo codice viene eseguito per OGNI paragrafo
paragrafoSingolo.style.color = 'blue';
paragrafoSingolo.style.fontSize = '18px';
});
๐ Cosa succede passo-passo:
querySelectorAll('p') seleziona TUTTI i paragrafi
forEach dice: "Fai questo per OGNI paragrafo"
function(paragrafoSingolo) rappresenta il singolo paragrafo corrente
Cambiamo lo stile di quel paragrafo specifico
๐ฎ Prova Tu!
Clicca il bottone per vedere forEach in azione:
Paragrafo 1
Paragrafo 2
Paragrafo 3
Arrow Functions - Le Frecce Magiche
function() {
// codice qui
}
๐ La forma che giร conosci
() => {
// codice qui
}
๐ Stessa funzionalitร , sintassi nuova!
๐ Esempio Pratico - Nascondere un Elemento:
// Nascondi un messaggio dopo 3 secondi
const avviso = document.querySelector('.avviso');
setTimeout(() => {
avviso.style.display = 'none';
}, 3000);
Traduzione in italiano:
"Dopo 3000 millisecondi (3 secondi), nascondi l'avviso"
La freccia => significa semplicemente "poi esegui questo codice"
๐ Confronto Diretto - Stesso Risultato
Versione Classica:
bottone.addEventListener('click', function() {
alert('Cliccato!');
});
Versione Moderna:
bottone.addEventListener('click', () => {
alert('Cliccato!');
});
โก Entrambe fanno ESATTAMENTE la stessa cosa!
Regola Semplice:
Quando vedi () => {}, pensa:
"Questo รจ come function() {}, solo piรน corto!"
Puoi usare entrambe le forme liberamente, fanno la stessa cosa!
dataset - I Dati Nascosti negli Elementi
Gli elementi HTML possono contenere dati personalizzati usando attributi data-*:
<!-- Esempio: Card di un prodotto -->
<div class="prodotto"
data-prezzo="29.99"
data-categoria="elettronica"
data-disponibile="true">
Smartphone XYZ
</div>
๐ Come leggere questi dati con JavaScript:
// Selezioniamo l'elemento
const prodotto = document.querySelector('.prodotto');
// Leggiamo i suoi dati personalizzati
const prezzo = prodotto.dataset.prezzo; // โ "29.99"
const categoria = prodotto.dataset.categoria; // โ "elettronica"
const disponibile = prodotto.dataset.disponibile; // โ "true"
console.log('Il prezzo รจ: โฌ' + prezzo);
๐ Regole Importanti:
data-prezzoin HTML โdataset.prezzoin JSdata-nome-prodottoin HTML โdataset.nomeProdottoin JS (camelCase!)- I valori sono sempre stringhe di testo
๐ฏ Esempio Pratico - Menu di Ristorante
<button class="piatto"
data-nome="Pizza Margherita"
data-prezzo="8.50"
data-piccante="no">
๐ Ordina Pizza
</button>
const piatto = document.querySelector('.piatto');
piatto.addEventListener('click', function() {
// Prendiamo i dati dal bottone
const nome = piatto.dataset.nome; // โ "Pizza Margherita"
const prezzo = piatto.dataset.prezzo; // โ "8.50"
const piccante = piatto.dataset.piccante; // โ "no"
// Mostriamo l'ordine
alert('Hai ordinato: ' + nome + ' - โฌ' + prezzo);
});
๐ Il Flusso Completo:
Definisci i dati nell'HTML con data-*
Seleziona l'elemento in JavaScript
Leggi i dati con elemento.dataset.nomeAttributo
Usa i dati nel tuo codice!
๐ฎ Prova Tu!
Clicca i bottoni per vedere dataset in azione:
๐งฉ Mettiamo Tutto Insieme!
Ecco un esempio completo che usa tutti e tre i concetti - un semplice sistema di voti:
<div class="voti-container">
<button class="voto-btn" data-stelle="1" data-valore="โญ">1 Stella</button>
<button class="voto-btn" data-stelle="2" data-valore="โญโญ">2 Stelle</button>
<button class="voto-btn" data-stelle="3" data-valore="โญโญโญ">3 Stelle</button>
<p id="risultato">Clicca per votare</p>
</div>
// 1. Prendi TUTTI i bottoni di voto
const bottoniVoto = document.querySelectorAll('.voto-btn');
const risultato = document.querySelector('#risultato');
// 2. Per OGNI bottone... (forEach)
bottoniVoto.forEach(function(bottone) {
// 3. Aggiungi un evento click
bottone.addEventListener('click', function() {
// 4. Prendi i dati dal bottone cliccato (dataset)
const numeroStelle = bottone.dataset.stelle;
const stelleVisive = bottone.dataset.valore;
// 5. Mostra il risultato
risultato.textContent = 'Hai votato: ' + stelleVisive;
risultato.style.fontSize = '24px';
// 6. Animazione con arrow function!
bottone.style.transform = 'scale(1.2)';
setTimeout(() => {
bottone.style.transform = 'scale(1)';
}, 300);
});
});
๐ Analisi del Codice:
forEach - Lavora su tutti i bottoni insieme
dataset - Legge stelle e valore da HTML
Arrow function - Nell'animazione setTimeout
Sei Pronto per il Progetto!
โ Cosa hai imparato:
Per lavorare con liste di elementi
Un modo moderno per scrivere funzioni
Per leggere dati dagli elementi HTML
Per fare cose dopo un ritardo
Non devi memorizzare tutto!
Il progetto seguente userร questi concetti in modo simile, ma con bottoni colorati invece di voti. Tu dovrai applicare la stessa logica a un caso diverso!
Ricorda: se ti blocchi, puoi sempre tornare a questa spiegazione per rivedere gli esempi!
๐ฎ Progetto Finale: Bottone Cambiasfondo Interattivo
ร il momento del progetto vero! ๐
Creerai un'applicazione web interattiva dove l'utente puรฒ:
- Cambiare il colore di sfondo cliccando un bottone
- Vedere quale colore รจ attivo
- Avere un'interfaccia fluida e professionale
๐ฏ Obiettivi del Progetto
- โ Creare bottoni per diversi colori
- โ Cambiare lo sfondo della pagina al click
- โ Mostrare un messaggio con il colore selezionato
- โ Aggiungere effetti visivi
๐ Il Codice HTML
<div class="progetto-container">
<h1 id="progettoTitolo">Scegli il Tuo Colore Preferito!</h1>
<p id="progettoMessaggio">Clicca un bottone per cambiare lo sfondo</p>
<div class="colori-grid">
<button class="color-btn" data-color="#ff6b6b" data-name="Rosso">
๐ด Rosso
</button>
<button class="color-btn" data-color="#4ecdc4" data-name="Azzurro">
๐ต Azzurro
</button>
<button class="color-btn" data-color="#ffd93d" data-name="Giallo">
๐ก Giallo
</button>
<button class="color-btn" data-color="#a29bfe" data-name="Viola">
๐ฃ Viola
</button>
<button class="color-btn" data-color="#55efc4" data-name="Verde">
๐ข Verde
</button>
<button class="color-btn" data-color="#fd79a8" data-name="Rosa">
๐ธ Rosa
</button>
</div>
</div>
๐จ Il Codice CSS
.progetto-container {
text-align: center;
padding: 3rem;
background: white;
border-radius: 20px;
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}
.colori-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
margin-top: 2rem;
}
.color-btn {
padding: 1.5rem;
font-size: 1.2rem;
font-weight: 600;
border: none;
border-radius: 15px;
background: #f8f9fa;
cursor: pointer;
transition: all 0.3s;
}
.color-btn:hover {
transform: translateY(-5px);
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
}
โก Il Codice JavaScript
// Seleziona tutti i bottoni colore
const bottoniColore = document.querySelectorAll('.color-btn');
const messaggio = document.querySelector('#progettoMessaggio');
// Per ogni bottone, aggiungi un evento click
bottoniColore.forEach(function(bottone) {
bottone.addEventListener('click', function() {
// COMPLETA TU QUESTO CODICE!
// Suggerimenti:
// 1. Prendi il colore: bottone.dataset.color
// 2. Prendi il nome: bottone.dataset.name
// 3. Cambia lo sfondo: document.body.style.backgroundColor
// 4. Cambia il messaggio: messaggio.textContent
});
});
๐ฏ Progetto Live
Scegli il Tuo Colore Preferito!
Clicca un bottone per cambiare lo sfondo
๐ป Completa il Codice JavaScript
๐ฏ Conclusione: Hai Imparato un Sacco!
โ Recap: Cosa Hai Imparato
- โ
Come selezionare elementi HTML con
querySelector() - โ
Come aggiungere eventi click con
addEventListener() - โ
Come modificare testo con
textContent - โ
Come cambiare stili CSS con
style - โ Come creare un progetto interattivo completo
๐ Challenge: Vai Oltre!
Prova a modificare il progetto aggiungendo:
- ๐จ Nuovi colori personalizzati
- โจ Animazioni quando cambi colore
- ๐ Un bottone "Random" che sceglie un colore casuale
- ๐ Mostra il codice esadecimale del colore
๐ฌ Feedback
Ti รจ piaciuta questa lezione? C'รจ qualcosa che non hai capito?
Ricorda: imparare a programmare รจ una maratona, non uno sprint. Prenditi il tempo che ti serve!