Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Countdown
My4tic
post 17.08.2006, 13:38:14
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z takim kodem:

  1. <script type="text/javascript">
  2. function countdown(dd, id){
  3.  
  4. idd = id;
  5. sek = dd;
  6.  
  7. godziny=Math.floor(dd/3600);
  8. remain=Math.floor(dd-(godziny*3600));
  9. minuty=Math.floor(remain/60);
  10. sekundy=Math.floor(dd-(minuty*60+godziny*3600));
  11.  
  12. if (sekundy<10) sekundy= "0"+sekundy;
  13. if (minuty<10) minuty= "0"+minuty;
  14. if (godziny<10) godziny= "0"+godziny;
  15.  
  16. document.getElementById(idd).innerHTML=godziny+":"+minuty+":"+sekundy;
  17.  
  18. if (dd==0) {
  19. document.getElementById(idd).innerHTML="---";
  20. return
  21. }
  22.  
  23. sek = dd - 1;
  24. setTimeout("countdown(sek, idd)", 1000);
  25. }
  26.  
  27. dd - czas ktory ma odliczyc w sek
  28. id - id pola ktore ma być modyfikowane


...wszystko działa ok do momentu kiedy chce uruchomić funkcje dla większej ilości pól na stronie.
Powiedzmy ze mam dwa divy o id 1 i 2. Teraz chce aby timer odliczał dwa rozne czasy w tych dwoch polach. Ta funkcja którą mam sobie z tym nie radzi.

Pzdr


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
SHiP
post 17.08.2006, 14:01:06
Post #2





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Musisz zdefioniować id kazdego timera i w zaleznosci od niego operowac na odpowiednim obiekcie
Kiedys napisalem coś takiego...

Kod
var Timeout=Array();

function timer(id,time,endcode)
{

    window.clearTimeout(Timeout['timer_'+id]);

    time--;
    var myTime = time;

    var hours = Math.floor(time/3600);
    time-=hours*3600;
    var min = Math.floor(time/60);
    time-=min*60;

    if(hours<10) hours='0'+hours;
    if(min<10) min='0'+min;

    if(myTime==0) {document.getElementById(id).innerHTML='';  eval(endcode); return 0; }
        else document.getElementById(id).innerHTML=hours+':'+min+':'+time;

  Timeout['timer_'+id] = window.setTimeout('timer("'+id+'",'+myTime+',"'+endcode+'")', 1000);
}


Przykald uzycia

Kod
var Timeout=Array();

function timer(id,time,endcode)
{

    window.clearTimeout(Timeout['timer_'+id]);

    time--;
    var myTime = time;

    var hours = Math.floor(time/3600);
    time-=hours*3600;
    var min = Math.floor(time/60);
    time-=min*60;

    if(hours<10) hours='0'+hours;
    if(min<10) min='0'+min;

    if(myTime==0) {document.getElementById(id).innerHTML='';  eval(endcode); return 0; }
        else document.getElementById(id).innerHTML=hours+':'+min+':'+time;

  Timeout['timer_'+id] = window.setTimeout('timer("'+id+'",'+myTime+',"'+endcode+'")', 1000);
}
</script>

<div id="one"></div>
<div id="two"></div>

<script type="text/javascript">

timer("one",60,"alert('Minuta minęła')");
timer("two",10,"alert('10 sek. minęło')");
</script>


Zapomniałem o skladni ;] Pierwszy parametr - id, drugi - czas w sekundach - trzeci kod jaki zostanie wykonany po uplywie tego czasu

Ten post edytował SHiP 17.08.2006, 14:03:47


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
My4tic
post 17.08.2006, 14:59:14
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

Ostrzeżenie: (0%)
-----


Dzięki za pomoc. Wszystko śmiga.

Pozdrawiam.


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 18:03