Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Come creare un sistema di notifiche o alert animati con HTML, CSS e JavaScript

Come creare un sistema di notifiche o alert animati per le nostre pagine web utilizzando HTML, CSS e JavaScript
Come creare un sistema di notifiche o alert animati per le nostre pagine web utilizzando HTML, CSS e JavaScript
Link copiato negli appunti

Nel mondo dello sviluppo web moderno, fornire feedback chiari e immediati all'utente è fondamentale. Che si tratti di confermare un'azione, segnalare un errore o mostrare un semplice avviso, i messaggi di notifica giocano un ruolo chiave nell'esperienza utente. I classici alert() di JavaScript, però, risultano oggi limitanti, invasivi e poco personalizzabili.

Guida alla creazione di notifiche animate con HTML, CSS e JS

Creare un sistema di notifiche o alert animati personalizzato consente di migliorare l'estetica dell'interfaccia e rendere la comunicazione con l'utente più fluida e coerente con lo stile del progetto, oltre a poter essere riutilizzato in contesti reali come form, dashboard o e-commerce. In questa guida vedremo come realizzare un sistema di notifiche animato utilizzando HTML, CSS e JavaScript puro, senza librerie esterne, costruendo una base semplice, chiara ed estendibile.

Quali linguaggi serviranno per creare un sistema di notifiche?

Per realizzare il nostro sistema di notifiche o alert animati utilizzeremo esclusivamente tecnologie frontend standard, senza fare affidamento su librerie o framework esterni.
Nel dettaglio useremo:

  • HTML per definire il contenitore che ospiterà le notifiche e gli elementi del messaggio.
  • CSS per curare l'aspetto grafico degli alert e delle animazioni di entrata e uscita.
  • JavaScript per creare e controllare dinamicamente le notifiche, gestire i diversi tipi di messaggio e automatizzare la loro chiusura.

Il risultato finale sarà un sistema di notifiche in stile toast, che comparirà in sovrimpressione nella pagina senza interrompere l'esperienza dell'utente. Ogni notifica verrà mostrata con una breve animazione, resterà visibile per alcuni secondi e poi scomparirà automaticamente, con la possibilità di essere chiusa manualmente.
Il sistema supporterà più tipologie di alert, come: notifiche di successo, per confermare operazioni completate correttamente; notifiche di errore, per segnalare problemi o azioni non valide; notifiche di avviso o informative, utili per comunicazioni non bloccanti
L'obiettivo non è creare un componente complesso, ma una soluzione leggera, chiara e facilmente personalizzabile, che possa essere riutilizzata in contesti reali come form di contatto, aree riservate, dashboard o applicazioni web interattive.

Codice HTML

<body>
    <h1>Sistema di Notifiche Animate</h1>
    <p>Clicca sui pulsanti per visualizzare i diversi tipi di notifica.</p>
    <div class="buttons">
        <button
            onclick="showNotification('Operazione completata con successo', 'success')"
        >
            Mostra Success
        </button>

        <button
            onclick="showNotification('Si è verificato un errore', 'error')"
        >
            Mostra Error
        </button>
        <button
            onclick="showNotification('Attenzione: controlla i dati inseriti', 'warning')"
        >
            Mostra Warning
        </button>

        <button
            onclick="showNotification('Questa è una notifica informativa', 'info')"
        >
            Mostra Info
        </button>
    </div>
    <div id="notification-container"></div>
</body>

Partiamo dalla struttura HTML, che in questo caso è volutamente semplice e minimale: un contenitore in cui verranno inserite dinamicamente le notifiche tramite JavaScript. All'interno della pagina definiamo quindi un wrapper dedicato alle notifiche, che fungerà da area di appoggio per tutti gli alert generati: questo elemento rappresenta il punto in cui compariranno le notifiche a schermo. Non inseriamo manualmente alcun messaggio al suo interno, perché saranno creati e rimossi dinamicamente via JS in base alle azioni dell'utente o agli eventi dell'applicazione. Infine sono stati aggiunti anche alcuni pulsanti di esempio che simulano la comparsa di notifiche diverse.
L'HTML rimane leggero: tutta la logica e la gestione delle notifiche verrà demandata al CSS per lo stile e le animazioni, e al JavaScript per la creazione, la visualizzazione e la rimozione degli alert. Questo approccio rende il sistema modulare, ordinato e facile da mantenere.

Codice CSS

.buttons {
    margin-top: 20px;
}
.buttons button {
    padding: 10px 16px;
    margin-right: 10px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background-color: #333;
    color: #fff;
    transition: background-color 0.3s ease;
}

.buttons button:hover {
    background-color: #555;
}

Inizialmente viene assegnato uno stile ai pulsanti di prova che sono stati inseriti nella struttura HTML e viene gestito il loro comportamento al passaggio del mouse su di essi.

#notification-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
}
.notification {
    min-width: 280px;
    margin-bottom: 10px;
    padding: 14px 18px;
    border-radius: 8px;
    color: #fff;
    font-size: 14px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    opacity: 0;
    transform: translateX(100%);
    animation: slideIn 0.4s ease forwards;
}

.notification.success {
    background-color: #2ecc71;
}
.notification.error {
    background-color: #e74c3c;
}

.notification.warning {
    background-color: #f39c12;
}
.notification.info {
    background-color: #3498db;
}

.notification.hide {
    animation: slideOut 0.4s ease forwards;
}

Il contenitore delle notifiche è posizionato in modo fixed nell'angolo in alto a destra della pagina, così da rimanere sempre visibile anche durante lo scroll. Ogni notifica viene visualizzata come un piccolo box con ombra, angoli arrotondati e colore differente in base al tipo di messaggio.

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(100%);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
@keyframes slideOut {
    from {
        opacity: 1;
        transform: translateX(0);
    }
    to {
        opacity: 0;
        transform: translateX(100%);
    }
}

Le animazioni CSS gestiscono sia l'entrata che l'uscita delle notifiche: all'apparizione viene applicato un effetto di scorrimento laterale con dissolvenza, mentre in fase di chiusura la notifica scivola nuovamente fuori dallo schermo. Questo approccio permette di ottenere un effetto fluido e moderno senza appesantire il codice JavaScript.

Il codice Javascript per creare un sistema di notifiche

function showNotification(message, type = "info") {
    const container = document.getElementById("notification-container");
    const notification = document.createElement("div");
    notification.classList.add("notification", type);
    notification.textContent = message;

    container.appendChild(notification);
    setTimeout(() => {
        notification.classList.add("hide");

        notification.addEventListener("animationend", () => {
            notification.remove();
        });
    }, 3000);
}

La funzione showNotification()
Poi viene creato un nuovo elemento div, a cui vengono assegnate due classi CSS: una classe base (notification success, error, warning o info

Risultato finale e conclusione

Il risultato ottenuto è un sistema di notifiche animato semplice, leggero e funzionale, capace di migliorare sensibilmente l'esperienza utente rispetto ai classici alert del browser. Le notifiche compaiono in modo fluido, sono facilmente distinguibili grazie ai diversi colori e non interrompono la navigazione, rendendo la comunicazione con l'utente più naturale ed efficace.

Grazie all'utilizzo di HTML, CSS e JavaScript, il sistema risulta facilmente personalizzabile e integrabile in qualsiasi progetto web. È possibile modificarne lo stile, la durata o il comportamento senza intervenire su logiche complesse, rendendolo una base solida da cui partire per implementazioni future più avanzate. Questo approccio dimostra come anche con poche righe di codice sia possibile ottenere componenti moderni e professionali, migliorando qualità e usabilità delle interfacce web.

Ti consigliamo anche