Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28

Discussione: contatore

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489

    contatore

    ciao ragazzi!

    avrei bisogno gentilmente di un miniscript. e sinceramente non mi va di studiarmi javascript per un lavoro di 10 min dato che poi non mi servirá piu...

    dunque io ho gia cercato ma uno script che fa al caso mio non esiste per due motivi:

    1) non fanno quello che mi serve,
    2) i contatori che ho trovato partono semrpe da 60 secodni pieni


    dunque.. cosa mi servirebbe... mi servirebbe un countdown al quale do un valore iniziale in secodni.. (esempio 2435) e questo fa un countdown in ore, minuti secondi. (non gironi.. cioé 25 ore va bene, non 1 giorni 1 ora) poi oltre al valore iniziale ci vuole il valore dal quale inizaire a contare. esempio 200. il primo, é il valore iniziale assoluto, il secodno é il valore iniziale di quel preciso refresh.

    cioé cerco di spiegarlo con un esempio:

    ho 2 variabili. una equivale a ora, che sto generando il countdown. che ad esempio é 50 secondi. la secodna variabile in questo preciso istante é anche 50 secondi. se dopo 10 secondi aggiorno la prima variabile é ancora 50 secondi, la seconda é 40. entrambe le variabili vengono passate dal codice php. ora vi spiego a cosa serve la prima variabile.

    di questo script mi servirebbero due varianti. la prima che a fine countdown aggiorna la pagina, e il secondo che a fine countdown riparte (e qui serve la rpima variabile) dal numero di partenza, cioé in questo caso da 50.

    dato che geneticamente sono negato a spiegare, se avete domande non esitate a farle.. ringrazio in anticipo chiunque abbia voglia e tempo di aiutarmi.

    grazie

    ciao

    igor

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ho chiesto un po troppo?



    scusate ma non ci capisco na mazza di sta roba.. nessuno che mi puo aiutare gentilmente con questo script?

    grazi ein anticipo

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ragazzi perfavore almeno datemi un punto di partenza sul quale possoprovare a lavorare.. ho provato a farmelo da zero ma non ci riesco.. non l ho mai fatto prima... grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    dunque cerco di spiegarvi meglio cio che mi serve. ho una pagina. dove ci sono due contatori. uno visualizza il tempo totale rimanente. (la variabile viene passata da php e é espressa in secondi) il tempo totale é la somma di X countdown piu piccoli. ad esempio. devo fare 20 countdown da 10 secondi: il primo contatore fa vedere la somma di questi 20 countdown da 10 secondi espresso in min e secondi cioé 3 min e 20 secondi. il secondo contatore fa vedere il tempo necessario a finire quello specifico countdown. il problema quale é? é che se io vado su quella pagina ad esempio 15 secodni dopo che é iniziato il countdown il tempo totale sará di 185 secondi non di 200, (il valore corretto di quel momento viene passato da php in secondi) e il contatore secondario mostrerá 5 secondi NON 10.... PERÒ quando il contatore secondario raggiunge 0, dovrá andare a 10, non a 5. praticamente io allo script passo 5 variabili:
    1) tempo totale rimanente in secondi
    2) tempo rimanente del contatore secondario
    3) valore di reset per il contantore secondario.

    quando il contatore primario ha finito dovrebbe fare un refresh della pagina (se possibile)


    questo é cio che soo riuscito a fare, come vedere niente di che perche come anticipato non ci capisco na mazza:


    codice:
                   <script type="text/javascript" language="JavaScript">
            <!--
    
    
            function vaitimer()
            {
                
                intervaltimer = 1000;
                threadIDsteel = setInterval("updatetimer1()", intervaltimer); 
                threadIDsteel = setInterval("updatetimer2()", intervaltimer);
            }
    
    
            function updatetimer1()
            {
    
                secondstotal --;
                if (secondstotal<'1') //fai un refresh;
    
            } 
            
            function updatetimer2()
            {
    
                secondssub --;
                if (secondssub<'1') // ripristina il contatore al valore iniziale;
    
            }
            -->
    ringrazio chinuqe abbia voglai di aiutarmi. é importantissimo per me.

    grazie

    ciao

    igor

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Consideralo un esempio:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
    <script>
    var tempo_totale = 185; // questo lo passi da PHP
    var valore_reset = 20; // anche questo
    var tempo_secondario = 5; // forse questo non serve... vedi lo sviluppo
    
    function conta() {
    	// minuti e secondi
    	minuti = parseInt(tempo_totale / 60);
    	secondi = tempo_totale % 60;
    	// secondario
    	tempo_secondario = tempo_totale % valore_reset; 
    	//	Visualizzo il tempo principale
    	stringa = "Mancano "
    	if (minuti>0) {
    		stringa += minuti + " minuti e "
    	}
    	stringa += secondi + " secondi"
    	document.getElementById("principale").innerHTML = stringa;
    	if(tempo_secondario==0) {
    		document.getElementById("secondario").innerHTML = "parziale azzerato"
    	} else {
    		document.getElementById("secondario").innerHTML = tempo_secondario;
    	}
    	// finito il tempo totale?
    	if (tempo_totale==0) {
    		alert("tempo scaduto!")
    	} else {
    		// sottraggo un secondo e richiamo
    		tempo_totale--;
    		setTimeout("conta()",1000);
    	}
    }
    </script> 
     </HEAD>
    
     <BODY onload="conta();">
      <div id="principale"> </div> 
      <div id="secondario"> </div> 
     </BODY>
    </HTML>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    uh che figata! grazie mille!

    posso chiederti alcune piccole picocle modifiche?

    1) aggiungere ore al contatore primario
    2) aggiungere minuti e ore al contatore secondario
    3) eseguire un refresh quando il contatore primario é finito.
    4) mettere uno zero davanti ai valori piu piccoli di 10 (08 , 09,...)
    grazie mille ancora!

    ciao

    igor

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    cé anche un altro problemino:

    il contatore secondario non é giusto. cioé cio che fá é questo: 3-2-1-0-10-9-8....

    cosi ottengo un loop di 11 secondi non dieci. dovrebbe farlo cosi: 3-2-1-0-9... oppure 3-2-1-10-9....

    grazie

    ciao

    igor

    questo é come ho modificato il tuo codice per ora (il codice per l onload e il richiamo nella pagina non li ho postati)
    codice:
     $script2=('
     	<script>
    	var tempo_totale = '.$timelefttotalforcounter.'; // questo lo passi da PHP
    	var valore_reset = '.$strainsoltime.'; // anche questo
    	var tempo_secondario = 5; // forse questo non serve... vedi lo sviluppo
    
    	function conta() {
    	// minuti e secondi
    	minuti = parseInt(tempo_totale / 60);
    	secondi = tempo_totale % 60;
    	// secondario
    	tempo_secondario = tempo_totale % valore_reset;
    	//	Visualizzo il tempo principale
    	stringa = ""
    
    	stringa += minuti + "m "
    	
    	stringa += secondi + "s "
    	document.getElementById("principale").innerHTML = stringa;
    	if(tempo_secondario==0) {
    		document.getElementById("secondario").innerHTML = "0"
    	} else {
    		document.getElementById("secondario").innerHTML = tempo_secondario;
    	}
    	// finito il tempo totale?
    	if (tempo_totale==0) {
    		alert("Building finished! Refresh the page!")
    	} else {
    		// sottraggo un secondo e richiamo
    		tempo_totale--;
    		setTimeout("conta()",1000);
    	}
    	}
    	</script>   ');

  8. #8
    dunque, ho modificato un po' il codice

    in particolare anziche' aumentare un contatore ad ogni ciclo calcolo i secondi passati in base alla differenza tra date. Questo' perche' non abbiamo la garanzia che il setTimeout sia preciso e da un piccolotest fatto si fa presto ad accumulare un errore di qualche secondo.

    Poi invece di usare il parseint o gli arrotondamenti dell'oggetto Math ho preferito usare semplici somme e divisioni tra interi per evitare fastidiosi imprecisioni di arrotondamento. Sembra un po' astruso, lo so ma e' efficace.


    Ci siamo quasi?

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
    <script>
    var tempo_totale = 23; // questo lo passi da PHP
    var valore_reset = 20; // anche questo
    var tempo_secondario = 5; // forse questo non serve... vedi lo sviluppo
    
    var data = new Date();
    var secondi_passati = 0;
    function conta() {
        nd = new Date();
        secondi_passati = ((nd - data) - (nd - data)%1000)/1000;
    	// ore minuti e secondi
    	ore = "" + ((tempo_totale - secondi_passati) - (tempo_totale - secondi_passati)%3600)/3600; 
        minuti = "" + ((tempo_totale - secondi_passati)%3600 - ((tempo_totale - secondi_passati)%3600)%60)/60;  
    	secondi = "" +(tempo_totale - secondi_passati)%60;
    	if (ore.length==1)
    	   ore = "0" + ore;
        if (minuti.length==1)
    	   minuti = "0" + minuti;
        if (secondi.length==1)
    	   secondi = "0" + secondi;
    	// secondario
    	tempo_secondario = (tempo_totale  - secondi_passati)% valore_reset; 
    	ore_sec = "" +((tempo_secondario) - (tempo_secondario)%3600)/3600; 
        minuti_sec = "" +((tempo_secondario)%3600 - ((tempo_secondario)%3600)%60)/60;  
    	secondi_sec = "" +(tempo_secondario)%60;
    	
    	if (ore_sec.length==1)
    	   ore_sec = "0" + ore_sec;
        if (minuti_sec.length==1)
    	   minuti_sec = "0" + minuti_sec;
    	if (secondi_sec.length==1)
    	   secondi_sec = "0" + secondi_sec;
    	
    	//	Visualizzo il tempo principale
    	stringa = "Mancano " +  ore + " ore, " + minuti + " minuti e " + secondi + " secondi";
    	//	E quello secondario
        stringa_sec = "Mancano " +  ore_sec + " ore, " + minuti_sec + " minuti e " + secondi_sec + " secondi";
    	document.getElementById("principale").innerHTML = stringa;
    	if(tempo_secondario==0) {
    		document.getElementById("secondario").innerHTML = "parziale azzerato"
    	} else {
    		document.getElementById("secondario").innerHTML = stringa_sec;
    	}
    	// finito il tempo totale?
    	if ((tempo_totale - secondi_passati)==0) {
    		location.reload();
    	} else {
    		setTimeout("conta()",1000);
    	}
    }
    </script> 
     </HEAD>
    
     <BODY onload="conta();">
      <div id="principale"> </div> 
      <div id="secondario"> </div> 
     </BODY>
    </HTML>

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    mitici! grazie mille! ci siamo!


    davvero mille mille grazie!

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ups me sono accorto di avere dei problemi.. non so se si possono risolvere...

    1) se io tramite un form faccio il submit, poi non cambio pagina, il conttore finiscee aggiorna, vuole rimandare i dati del form. si puo bloccare il resend?

    2) quando il contatore 1 finisce, passa qualche seocdno finche viene ricaricata la pagina. in questo periodo il secondo contatore salta dinuovo al valore iniziale e conta nuovamente.. lo si puo fermare quando il contatore principale finisce?

    3) aggiuntivo: é complicato aggiungere un terzo valore, passato da php, che diminuisce di uno ogni votla che il contatore secodnario ha finito?

    razie acnora

    ciao

    igor

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.