Indicatori di caricamento
Fa parte della sezione JavaScript in azione del percorso HTML di Coddy. Lezione 10 di 27.
Gli indicatori di caricamento sono piccoli elementi visivi (come icone rotanti o animazioni) che informano gli utenti che qualcosa sta accadendo in background (durante l'invio di un modulo o il caricamento di dati). Migliorano l'esperienza utente mostrando un feedback, invece di lasciare l'utente a chiedersi cosa stia succedendo.
Per prima cosa, aggiungi questo HTML alla tua pagina:
<button id="loadBtn">Load Data</button>
<div id="loading-spinner" class="spinner-hidden">
<div class="spinner"></div>
</div>Poi, aggiungi CSS per definire lo stile dell’elemento in modo che assomigli a una ruota e usa i fotogrammi chiave per farlo girare all’infinito. Usiamo anche una classe .hidden per mantenere invisibile lo spinner quando necessario.
.spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
}
.hidden {
display: none;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}Ora, aggiungi JavaScript per mostrare/nascondere lo spinner:
const loadBtn = document.getElementById("loadBtn");
const spinner = document.getElementById("spinner");
loadBtn.addEventListener("click", function () {
// Mostra lo spinner
spinner.classList.remove("hidden");
// Dopo 3 secondi, nascondi lo spinner e mostra un avviso
setTimeout(function () {
spinner.classList.add("hidden");
alert("Data loaded successfully!");
}, 3000);
});Quando si fa clic sul pulsante, mostriamo lo spinner, aspettiamo 3 secondi, poi lo nascondiamo e visualizziamo un avviso.
Sfida
FacileIl tuo compito:
- All'interno del listener dell'evento click del pulsante, aggiungi il codice per mostrare lo spinner rimuovendo la classe "hidden". Inserisci questo codice prima della funzione setTimeout.
Provalo tu
<!DOCTYPE html>
<html>
<head>
<title>Loading Spinner Example</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>Welcome to My Page</h1>
<p>Click the button below to simulate loading data.</p>
<button id="loadBtn">Load Data</button>
<div id="spinner" class="spinner hidden"></div>
</div>
<script src="script.js"></script>
</body>
</html>
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di JavaScript in azione
Esercitati da solo: Playground Web