Visualizzazione risultati 1 fino 2 di 2

Discussione: Stampare un messaggio alla fine del countdown in Javascript

  1. #1
    Guest

    Unhappy Stampare un messaggio alla fine del countdown in Javascript

    Ciao a tutti, non sono per niente ferrato in javascript e vorrei un aiuto per fare una semplice cosa.
    Ho un countdown (giorni ore minuti e secondi) che quando termina riparte a contare con davanti il simbolo "-".
    Io vorrei che quando termina il conteggio invece, al posto dei numeri, apparisse una frase impostata.
    Io ci ho provato davvero, mi sono informato ma non riesco a farlo funzionare,mi servirebbe un consiglio.
    Ho creato una variabile "current" alla quale ho dato il valore di una frase esempio, poi ho messo (un pochino a caso) la funzione "document.write" dappertutto ma non funziona.
    Il codice è il seguente, se potete anche darmi una spiegazione sul come si fa ed il perchè si scrive in una certa maniera, vi ringrazio, mi piacerebe capire e imparare.
    Codice:
    <script type="text/javascript">
    var futureyear=2011
    var futuremonth=09
    var futureday=4
    var current="oggi è finito il counter!"
    var displaytype="vediall"
    var digitordate="isdate"
    var aftercountdown="stopit"
    var digitfrom=100
    var digitto=0
    var speed=1
    
    var countdownid=new Array()
    var futuredate
    var nowdate
    var resultoreraw
    var resultore
    var resultminutiraw
    var resultminuti
    var resultsecondiraw
    var resultsecondi
    
    var p_secondi
    var p_minuti
    var p_ore
    var p_giorni
    
    var resultsecondionly
    var resultminutionly
    var resultoreonly
    var content
    
    var i_countdown=-1
    var countdownid
    
    var step=1
    speed*=1000
    
    if (digitfrom>digitto) {step=-1}
    if (digitfrom<digitto) {step=1}
    
    var browserinfos=navigator.userAgent
    var ns4=document.layers
    var ie4=!document.getElementById&&document.all&&!brows erinfos.match(/Opera/)
    var ie5=document.getElementById&&document.all&&!browse rinfos.match(/Opera/)
    var ns6=document.getElementById&&!document.all&&!brows erinfos.match(/Opera/)
    var opera=browserinfos.match(/Opera/)
    
    function setfuturedate() {
    futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
    if (digitordate=="isdigit") {content=digitfrom-step }
    docountdown()
    }
    
    function docountdown() {
    if (digitordate=="isdate") {
    calculateresults()
    formatresults()
    displayresults()
    setTimeout("docountdown()",speed)
    }
    else if (digitordate=="isdigit") {
    content+=step
    displayresults()
    if (content==digitto) {
    setTimeout("happensafter()",speed)
    }
    else {
    setTimeout("docountdown()",speed)
    }
    }
    }
    
    function firstcountdown() {
    if (digitordate=="isdate") {
    futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
    calculateresults()
    formatresults()
    }
    else if (digitordate=="isdigit") {
    content=digitfrom
    }
    }
    
    function calculateresults() {
    nowdate=new Date()
    resultgiorniraw=(Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24
    if (displaytype!="vediall") {
    resultsecondionly=Math.floor((Date.parse(futuredat e)-Date.parse(nowdate))/1000)
    resultminutionly=Math.floor((Date.parse(futuredate )-Date.parse(nowdate))/1000/60)
    resultoreonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60)
    }
    else {
    resultgiorni=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24)
    resultoreraw=(resultgiorniraw-resultgiorni)*24
    resultore=Math.floor((resultgiorniraw-resultgiorni)*24)
    resultminutiraw=(resultoreraw-resultore)*60
    resultminuti=Math.floor((resultoreraw-resultore)*60)
    resultsecondiraw=(resultminutiraw-resultminuti)*60
    resultsecondi=Math.floor((resultminutiraw-resultminuti)*60)
    }
    }
    
    function formatresults() {
    if (displaytype=="vediall") {
    if (resultgiorni>1) {p_giorni="giorni"}
    else {p_giorni="day"}
    if (resultminuti<10) {resultminuti="0"+resultminuti}
    if (resultsecondi<10) {resultsecondi="0"+resultsecondi}
    content=resultgiorni+" "+p_giorni+" "+resultore+"h "+resultminuti+"m "+resultsecondi +"s"
    }
    else if (displaytype=="vedigiorni") {
    if (resultgiorni>1) {p_giorni="giorni"}
    else {p_giorni="day"}
    content=resultgiorni+" "+p_giorni
    }
    else if (displaytype=="vediore") {
    content=resultoreonly+" Ore"
    }
    else if (displaytype=="vediminuti") {
    content=resultminutionly+" min"
    }
    else if (displaytype=="vedisecondi") {
    content=resultsecondionly+" sec"
    }
    }
    
    function happensafter() {
    if (aftercountdown=="repeatit") {
    if (digitordate=="isdigit") {content=digitfrom-step}
    docountdown()
    }
    if (aftercountdown!="stopit" && aftercountdown!="repeatit") {
    document.location.href=aftercountdown
    }
    }
    
    function displayresults() {
    if (ie4) {
    for (i=0;i<=countdownid.length-1;i++) {
    var thisclock=eval(countdownid[i])
    thisclock.innerHTML=content
    }
    }
    else {
    for (i=0;i<=countdownid.length-1;i++) {
    document.getElementById(countdownid[i]).innerHTML=content
    }
    }
    }
    
    function setcountdown() {
    if (ns4 || ie4 || ie5 || ns6 || opera) {
    firstcountdown()
    i_countdown++
    countdownid[i_countdown]="countdown"+i_countdown
    document.write("<span id='"+countdownid[i_countdown]+"' style='position:relative'>"+content+"</span>")
    }
    }
    
    if (ie4 || ie5 || ns6 || opera) {
    onload=setfuturedate
    }
    </script>
    Grazie mille a tutti.

    Ciao
    Ultima modifica di alemoppo : 15-10-2011 alle ore 18.44.47 Motivo: + tag [code]

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    la variabile che interviene, dopo il conteggio o a termine del conteggio, è questa:
    Codice HTML:
    var aftercountdown="stopit"
    e la funzione interessata è questa:
    Codice HTML:
    function happensafter() {
    if (aftercountdown=="repeatit") {
    if (digitordate=="isdigit") {content=digitfrom-step}
    docountdown()
    }
    if (aftercountdown!="stopit" && aftercountdown!="repeatit") {
    document.location.href=aftercountdown
    }
    }
    dalla funzione si può vedere che se la variabile aftercountdown non è uguale ne a stopit ne a repeatit, viene eseguito un indirizzamento di pagina appunta alla variabile aftercountdown che si è impostata in precedenza...
    quindi basterà impostare aftercountdown uguale ad una pagina web a cui si vuole far puntare lo script dopo il conteggio, es:
    Codice HTML:
    var aftercountdown="http://..indirizzo..web.it/pagina_dopo_conteggio.php"
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •