Questa guida ti permetterà di creare un effetto dinamico e moderno che modifica il colore di una sezione durante lo scroll della pagina utilizzando HTML, CSS e JavaScript puro.
L'obiettivo è realizzare una sezione il cui colore cambia progressivamente in base alla posizione dello scroll, creando un'esperienza web più dinamica e coinvolgente.
Questo effetto è particolarmente utile per:
- Landing Page
- Portfolio
- Hero Section
- Siti creativi
- Presentazioni di prodotto
Il risultato finale sarà una transizione fluida tra diverse tonalità di colore durante lo scroll, rendendo l'esperienza di navigazione più interattiva e visivamente accattivante.
Prerequisiti
- Hardware: Un computer con accesso a internet
- Software: Un editor di codice (es. Visual Studio Code, Sublime Text)
- Browser: Google Chrome, Mozilla Firefox o Microsoft Edge
- Conoscenze di base: HTML, CSS e JavaScript
PROCEDURA: Creazione di una sezione con colore dinamico durante lo scroll
Seguendo questa guida passo-passo, otterrai una sezione il cui colore di sfondo cambia progressivamente durante lo scroll della pagina.
Passo 1: Struttura HTML
- Crea una sezione alta il doppio dell'altezza della finestra del browser e con un titolo centrale.
Colori che cambiano
Scrolla la pagina per vedere l'effetto.
Nuova sezione
Continua a scorrere la pagina.
Passo 2: Stile CSS
- Imposta uno stile di base per la pagina.
- Definisci la sezione con l'effetto di cambio colore.
- Applica position: sticky al contenuto per mantenerlo visibile durante lo scroll.
{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
}
.color-section {
height: 200vh;
background: rgb(40, 80, 200);
position: relative;
}
.color-content {
position: sticky;
top: 0;
height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
color: white;
}
.color-content h1 {
font-size: clamp(50px, 8vw, 100px);
margin-bottom: 20px;
}
.color-content p {
font-size: 22px;
}
.content {
min-height: 100vh;
padding: 120px 10%;
background: #fff;
color: #222;
}
.content h2 {
font-size: 50px;
margin-bottom: 30px;
}
.content p {
line-height: 1.8;
} Passo 3: JavaScript
- Calcola la percentuale di scroll.
- Modifica progressivamente i valori RGB del colore in base alla posizione dello scroll.
- Utilizza la variabile progress per interpolare i componenti del colore.
window.addEventListener('scroll', function() {
const colorSection = document.querySelector('.color-section');
const scrollPosition = window.scrollY;
const sectionHeight = colorSection.offsetHeight;
const progress = Math.min(scrollPosition / sectionHeight, 1); const red = Math.floor(40 + (215 - 40) progress);
const green = Math.floor(80 + (150 - 80) progress);
const blue = Math.floor(200 + (55 - 200) progress); colorSection.style.background = `rgb(${red}, ${green}, ${blue})`;
}); Passo 4: Personalizzazione
- Modifica i colori di partenza e di arrivo per creare transizioni diverse.
- Aggiungi più tonalità per un effetto cromatico più complesso.
Verifica e Troubleshooting
Dopo aver implementato l'effetto di cambio colore durante lo scroll, è importante verificare il corretto funzionamento e risolvere eventuali problemi.
Test di Funzionamento
- Verifica dello scroll: Scorri la pagina per assicurarti che il colore di sfondo della sezione cambi progressivamente.
- Controllo dei colori: Verifica che i colori di transizione siano quelli desiderati e che la transizione sia fluida.
- Responsività: Testare il comportamento su dispositivi mobili e tablet per assicurarsi che l'effetto funzioni correttamente anche su schermi più piccoli.
Risoluzione dei Problemi
- Colore non cambia: Se il colore non cambia durante lo scroll, controlla che il codice JavaScript sia correttamente collegato e che non ci siano errori nella console del browser.
- Transizione non fluida: Se la transizione non è fluida, assicurati che la proprietà
backgroundnel CSS sia impostata correttamente e che non ci siano conflitti con altri stili. - Problemi di posizionamento: Se il contenuto non rimane fisso durante lo scroll, verifica che la proprietà
position: stickysia applicata correttamente alla classe.color-content. - Altezza della sezione: Se l'effetto non è visibile, controlla che l'altezza della sezione
.color-sectionsia sufficientemente grande (height: 200vh).
Questo approccio ti permette di trasformare un semplice movimento verticale in un elemento visivo capace di rendere l'esperienza di navigazione più coinvolgente.
- Non sono necessarie librerie o plugin esterni.
- L'effetto è facilmente personalizzabile.
- Può essere combinato con altri effetti legati allo scroll.
Prova a sperimentare con diverse combinazioni di colori e animazioni per creare esperienze uniche e moderne.
Nota Editoriale e Disclaimer
Le guide e i contenuti pubblicati su GoYou sono frutto di attività di ricerca e analisi indipendente, a scopo informativo, educativo e di approfondimento.
GoYou non costituisce una testata giornalistica né un prodotto editoriale ai sensi della Legge n. 62/2001 e non svolge attività di informazione in tempo reale.
Il progetto GoYou non fornisce consulenza professionale, tecnica, legale o finanziaria e declina ogni responsabilità per l’uso improprio delle informazioni pubblicate.
Nel settore Crypto, ogni investimento comporta rischi: si invita il lettore a informarsi sempre in modo autonomo prima di assumere qualsiasi decisione.