Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Countdown

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2022
    Messaggi
    3

    Countdown

    Ciao mi servirebbe un aiuto. Ho creato un blocco html + css ed inserito un codice per il countdown giorni e ore e funziona regolarmente. Volevo per che al termine del conteggio nell'id dato all'elemento h1 comparisse una scritta ma non capisco dove è l'errore, vi riporto il codice.
    Grazi mille
    codice:
    <script type="text/javascript">
        function updateTimer() {
            future = Date.parse("jun 06, 2022");
            now = new Date();
            diff = future - now;
            days = Math.floor(diff / (1000 * 60 * 60 * 24));
            hours = Math.floor(diff / (1000 * 60 * 60));
        
            d = days;
            h = hours - days * 24;
        
            document.getElementById("timer")
                .innerHTML =
                '<div>' + d + '<span>Giorni</span></div>' +
                '<div>' + h + '<span>Ore</span></div>';
        
          if (timer = 0) {
              document.getElementById("headline")
                    innerText = "Evento in corso!";
          }
        
        }
         setInterval('updateTimer()', 1000);
    </script>

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    La variabile timer che usi nell'istruzione if (timer = 0) { dove è stata definita o valorizzata?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2022
    Messaggi
    3
    Mh... non sono un grande esperto. Effettivamente non è definita o meglio il div html è <div id="timer"> </div>, ho pensato solo di richiamare id timer dell'elemento. Come potrei definirla?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    codice:
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>countdown test</title>
      <style>
        #countdown {
          display: flex;
        }
    
        .endcountdown {
          text-decoration: line-through;
        }
      </style>
    </head>
    
    <body>
    
      <div id="headline"></div>
      <div id="countdown"></div>
    
      <script>
    
        const headline = document.getElementById("headline")
        const countdown = document.getElementById('countdown')
        const future = Date.parse("jun 15, 2022 19:46:59")
    
        function updateTimer() {
     
          const now = new Date()
          const diff = future - now
          const days = Math.floor(diff / (1000 * 60 * 60 * 24))
          const hours = Math.floor((diff / (1000 * 60 * 60)) % 24)
          const minutes = Math.floor((diff / 1000 / 60) % 60)
          const seconds = Math.floor((diff / 1000) % 60)
    
          if (diff < 0) {
            headline.textContent = "Evento in corso!"
            countdown.textContent =
              `0 Giorni
              0 Ore
              0 Minuti
              0 Secondi
           `
            countdown.classList.add('endcountdown')
            clearInterval(CountDownTimer)
          } else {
            countdown.textContent =
              `${days} Giorni
              ${hours} Ore
              ${minutes} Minuti
              ${seconds} Secondi
           `
          }
        }
    
        const CountDownTimer = (() => setInterval(updateTimer, 1000))()
    
      </script>
    
    </body>
    
    </html>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2022
    Messaggi
    3
    Ok grazie, ho provato anche modificando ma non riesco. Provo ad inserie tutto il mio codice forse qualche elemento lo sbaglio a mettere.

    <meta charset="UTF-8">
    <link href="https://fonts.googleapis.com/css?family=Staatliches&amp;display=swap" rel="stylesheet" />
    <style media="screen" type="text/css">
    #timer {
    font-size: 3em;
    font-weight: 100;
    color: white;
    padding: 20px;
    width: 100%;
    color: white;

    }

    #timer div {
    display: inline-block;
    text-align: center;
    min-width: 90px;
    padding: 15px;
    background: #020b43;
    border-radius: 10px;
    border: 2px solid #030d52;
    margin: 15px;
    }

    #timer div span {
    color: #ffffff;
    display: block;
    margin-top: 15px;
    font-size: .35em;
    font-weight: 400;
    }
    .center {
    text-align: center;
    }
    </style>
    <div class="center">
    <h1 id="headline">Prossimo Evento</h1>
    <h2 style="text-align: center;"><span style="color:#2980b9;"><strong>Webinar Bilanci</strong></span></h2>
    <div id="timer"> </div>
    <div><a class="btn btn-primary shadow p-2 -md rounded-pill" target="_blank" href="#">Visualizza Evento</a></div>
    </div>
    <script type="text/javascript">
    function updateTimer() {
    future = Date.parse("jun 06, 2022");
    now = new Date();
    diff = future - now;
    days = Math.floor(diff / (1000 * 60 * 60 * 24));
    hours = Math.floor(diff / (1000 * 60 * 60));

    d = days;
    h = hours - days * 24;

    document.getElementById("timer")
    .innerHTML =
    '<div>' + d + '<span>Giorni</span></div>' +
    '<div>' + h + '<span>Ore</span></div>';

    if (timer = 0) {
    document.getElementById("headline")
    .innerHTML = "Evento in corso!";
    }

    }
    setInterval('updateTimer()', 1000);
    </script>

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da wasp31 Visualizza il messaggio
    Mh... non sono un grande esperto.
    In tal caso, approfondisci e documentati. Direi che non ci sono alternative.

    Quote Originariamente inviata da wasp31 Visualizza il messaggio
    Effettivamente non è definita
    Perfetto, quindi non potrà mai funzionare quella condizione se si basa su una variabile che non solo non è valorizzata, ma non è neppure definita.

    Quote Originariamente inviata da wasp31 Visualizza il messaggio
    o meglio il div html è <div id="timer"> </div>, ho pensato solo di richiamare id timer dell'elemento.
    L'elemento <div> fa parte della pagina HTML e ha un ID assegnato, ma non esiste un automatismo che crea e inizializza variabili in quel modo affinché si riferiscano ad elementi della pagina. Devi essere tu a recuperare l'oggetto, come peraltro viene già fatto nello script usando getElementById().

    E comunque, tu stai testando se timer = 0, quindi stai verificando un valore, non un elemento HTML, controllando se è uguale a zero, senza averlo mai né dichiarato né inizializzato. Quel codice non potrà mai andare bene.

    Quote Originariamente inviata da wasp31 Visualizza il messaggio
    Come potrei definirla?
    Se la variabile l'hai scritta tu, saprai cosa ci va inserito all'interno.

    Quote Originariamente inviata da wasp31 Visualizza il messaggio
    ho provato anche modificando ma non riesco. Provo ad inserie tutto il mio codice forse qualche elemento lo sbaglio a mettere.
    Dal codice si evince che non hai apportato le correzioni suggerite da ninja72.

    Se chiedi aiuto ma non segui i ragionamenti, non ti documenti e non provi a mettere a frutto gli esempi che ti vengono forniti, a che serve tutto questo?

    Rileggi le risposte, usa il codice proposto, approfondisci cercando sul Web le funzioni o le sintassi che non conosci.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.