login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > JavaScript

countdown

compudoc – 24/07/2007 17:34 (Laatst gewijzigd op 24/07/2007 17:35)
ik heb een countdown gevonden op internet maar als de tijd verstreken is gaat de tijd verder in de min..
dus bijvoorbeeld; -1 dag, 23 uur, 50 minuten, 30 seconde

nou wil ik bijvoorbeeld dat als het 0:00:00:00 is dat er vanaf dan een bericht komt te staan. zoiets als: de tijd is verstreken

hoe kan ik dit doen

  1. <SCRIPT language="JavaScript">
  2. countdownTo=new Date();
  3. countdownTo.setYear(2007);
  4. countdownTo.setMonth(10);
  5. countdownTo.setDate(17);
  6. countdownTo.setHours(00);
  7. countdownTo.setMinutes(00);
  8. countdownTo.setSeconds(0);
  9.  
  10. function countdown() {
  11. var now=new Date();
  12. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  13. var txt="";
  14. var deltaDays=Math.floor(deltaSecs/86400);
  15. deltaSecs-=86400*deltaDays;
  16. txt+=deltaDays+" dagen, ";
  17. var deltaHours=Math.floor(deltaSecs/3600);
  18. deltaSecs-=3600*deltaHours;
  19. txt+=deltaHours+" uur, ";
  20. var deltaMins=Math.floor(deltaSecs/60);
  21. deltaSecs-=60*deltaMins;
  22.  
  23. txt+=deltaMins+" minuten, ";
  24. txt+=deltaSecs+" seconde , ";
  25. txt=txt.substr(0,txt.length-2);
  26. document.getElementById("countdown").innerHTML=txt;
  27. countdownTimer=setTimeout("countdown()",1000);
  28. }
  29. </SCRIPT>


4 antwoorden

Gesponsorde links
Daisycon - Verdien geld met uw website

Brycer – 24/07/2007 21:19
  1. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  2. var txt="";


vervangen door:
  1. var txt="";
  2. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  3. if(deltaSecs <= 0){
  4. txt = "De tijd is verstreken";
  5. }
  6. else{
  7. //de rest van je script
  8. }


compudoc – 25/07/2007 10:02
Brycer bedankt maar het probleem is dat het scriptje op de laatste seconde voordat de tijd is verstreken blijft hangen.
Als je de pagina doet vernieuwen doet ie ook helemaal niks meer weergeven (geen tijd of melding).

hoe kan ik dit probleem oplossen?

dit is mijn script nu:
  1. <SCRIPT language="JavaScript">
  2. countdownTo=new Date();
  3. countdownTo.setYear(2007);
  4. countdownTo.setMonth(11);
  5. countdownTo.setDate(17);
  6. countdownTo.setHours(00);
  7. countdownTo.setMinutes(00);
  8. countdownTo.setSeconds(0);
  9.  
  10. function countdown() {
  11. var now=new Date();
  12. var txt="";
  13. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  14. if(deltaSecs <= 0){
  15. txt = "tijd is verstreken";
  16. } else {
  17.  
  18. var deltaDays=Math.floor(deltaSecs/86400);
  19. deltaSecs-=86400*deltaDays;
  20. txt+=deltaDays+" dagen, ";
  21. var deltaHours=Math.floor(deltaSecs/3600);
  22. deltaSecs-=3600*deltaHours;
  23. txt+=deltaHours+" uur<br />";
  24. var deltaMins=Math.floor(deltaSecs/60);
  25. deltaSecs-=60*deltaMins;
  26.  
  27. txt+=deltaMins+" min, ";
  28. txt+=deltaSecs+" sec tot..<br />de tijd is verstreken, ";
  29. txt=txt.substr(0,txt.length-2);
  30. document.getElementById("countdown").innerHTML=txt;
  31. countdownTimer=setTimeout("countdown()",1000);
  32.  
  33. }
  34. }
  35. </SCRIPT>


Brycer – 25/07/2007 10:46
Ja dat klopt.
Dit komt doordat deltasecs zodra het verschil tussen nu en de tijd kleiner dan 1 seconde wordt meteen 0 wordt (omdat je floor gebruikt). En volgens je if-lus wordt txt dan "tijd is verstreken".
Maar
  1. document.getElementById("countdown").innerHTML=txt;
  2. countdownTimer=setTimeout("countdown()",1000);

staat in het else-gedeelte van je lus, dus als deltasecs 0 is, wordt bovenstaande code niet meer uitgevoerd...
De text "tijd is verstreken" wordt dus niet weergegeven en de functie wordt ook niet opnieuw aangeroepen.
Hoe het wel moet (regel 27 t/m 35):
  1. txt+=deltaMins+" min, ";
  2. txt+=deltaSecs+" sec tot..<br />de tijd is verstreken, ";
  3. txt=txt.substr(0,txt.length-2);
  4. }
  5. document.getElementById("countdown").innerHTML=txt;
  6. countdownTimer=setTimeout("countdown()",1000);
  7. }</SCRIPT>


Succes verder 
MvG Brycer 

compudoc – 25/07/2007 10:57
Brycer, heel erg bedankt!
het werkt nu perfect

Gesponsorde links

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.053s