Menu
Coddy logo textTech

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.

challenge icon

Sfida

Facile

Il tuo compito:

  1. 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>
quiz iconMettiti alla prova

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