Countdown |
Countdown |
22.03.2006, 23:11:41
Post
#1
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 5.02.2006 Ostrzeżenie: (0%) |
Potrzebuję prosty skrypt odliczający czas od jakiejś wartości do zera.
powinien wyglądać tak: -przez jakis skrypt php wysyłam wartość w sekundach do skryptu JS -w js, sekundy są zliczane na minuty, godziny - dni i wyższe wartości są niepotrzebne, moze sie przytrafić ze bedzie np. 115 godzin -nastepnie co sekundę licznik powinien być odswierzany i pomniejszany o 1 sek -gdy dojdzie do zera powinien pojawic się takiś tekst zamiast licznika albo jakieś zdarzenie (obstaję przy tekscie) I tu prośba do forumowiczów. Nie znam się na JS więc chciałbym aby ktoś napisał taki banalny kodzik. Byłbym wdzięczy zwłaszcza że wszystkie countdowny na necie są albo za bardzo rozbudowane, albo trudne do rozgryzienia. A mi chodzi o takie proste liczydło. |
|
|
23.03.2006, 13:26:25
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) |
Najprościej jak się da
Kod <script type="text/javascript"> var hours = 20; var min = 0; var sec=0; function time() { if(sec > 0) { sec--; } else if(min > 0) { min--; sec = 59; } else if(hours > 0) { hours--; min = 59; sec=59; } if(hours ==0 && min==0 && sec==0) { alert("End of time...."); } document.getElementById('tm').innerHTML= hours+":"+((min < 10) ? "0" + min : min)+":"+((sec < 10) ? "0" + sec : sec); setTimeout("time();", 1000); } </script> -------------------- -------------
------ |
|
|
23.03.2006, 14:34:55
Post
#3
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 5.02.2006 Ostrzeżenie: (0%) |
mój błąd... nieco modyfikacji powinno tam się znaleźć
- nie chodzi mi o wyświetlenie okienka alert tylko żeby w miejscu gdzie jest 'czas' pojawił się tekst np: kaboom! ale skrypt jest zajebisty... aha jak zrobić żeby przy pomocy tego skryptu wyświetlić kilka razy w różnych miejscach strony ten czas ale z innymi wartościami... np. 00:12:59 w stopce: 24:00:01 gdzieś w tekście: 00:00:53 i żeby każdy działał. juz wiem ze skopiowanie: <span id="tm"></span> nic nie daje |
|
|
24.03.2006, 21:37:57
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) |
Kod <script type="text/javascript"> var IdNo = 0; function time (hours,mins,secs,span) { this.id = "time" + IdNo++; window[this.id] = this; this.hours = hours; this.mins = mins; this.secs = secs; this.span = span; this.show = show; } function show() { if( this.secs > 0 ) { this.secs--; } else if( this.secs == 0 && this.mins > 0 ) { this.mins--; this.secs=59; } else if ( this.secs == 0 && this.mins == 0 && this.hours > 0 ) { this.hours--; this.mins=59; this.secs=59; } if( this.hours == 0 && this.mins == 0 && this.secs == 0 ) { alert("Koniec czasu"); } else { document.getElementById( this.span ).innerHTML = "Time left: " + (( this.hours < 10 ) ? ( "0" + this.hours ) : this.hours) + ":" + (( this.mins < 10 ) ? ( "0" + this.mins ) : this.mins) + ":" + (( this.secs < 10 ) ? ( "0" + this.secs ) : this.secs); } setTimeout("window."+this.id+".show()",1000); } function load() { var timer = new time(20,0,0,"tm"); var timer1 = new time(14,35,45,"tm1"); var timer2 = new time(0,10,2,"tm2"); timer.show(); timer1.show(); timer2.show(); } </script> Nie wiedziałem dlaczego timer nie zmniejsza mi się więc pogoglowałem Pomysł z zachowaniem referencji do obiektu jest stąd: http://www.codingforums.com/showthread.php?t=242 -------------------- -------------
------ |
|
|
24.03.2006, 21:43:39
Post
#5
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 5.02.2006 Ostrzeżenie: (0%) |
juz na innym forum mi ludzie pomogli:
Kod var hours = 0; var min = 0; var sec = 5; function time() { if(sec > 0) { sec--; } else if(min > 0) { min--; sec = 59; } else if(hours > 0) { hours--; min = 59; sec=59; } if(hours==0 && min==0 && sec==0) { document.getElementById('tm').innerHTML="-"; } else { document.getElementById('tm').innerHTML= hours+":"+((min < 10) ? "0" + min : min)+":"+((sec < 10) ? "0" + sec : sec); } setTimeout("time();", 1000); } __ Kod body onload="time()"> <script src='script.js' type='text/javascript'></script> <span id="tm"></span> </body> mozna prościej? hę? |
|
|
24.03.2006, 22:24:36
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) |
Jakoś nie widzę żeby ten skrypt wyświetlał czas w trzech miejscach, poza tym powiedz mi czym się różni od tego który podałem w swoim pierwszym poście
-------------------- -------------
------ |
|
|
24.03.2006, 23:43:40
Post
#7
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 5.02.2006 Ostrzeżenie: (0%) |
zajmuje mniej miejsca i o to mi chodziło...
|
|
|
25.03.2006, 18:27:47
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) |
Chyba mnie nie rozumiesz.
Różni się tym że to: Kod alert("End of time...."); jest zamienione na to: Kod document.getElementById('tm').innerHTML="-"; Tego chyba mogłeś się sam domyślić, a nie szukać pomocy na innym forum. Poza tym: Cytat aha jak zrobić żeby przy pomocy tego skryptu wyświetlić kilka razy w różnych miejscach strony ten czas ale z innymi wartościami... To robi drugi skrypt który podałem. -------------------- -------------
------ |
|
|
26.03.2006, 00:41:55
Post
#9
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 5.02.2006 Ostrzeżenie: (0%) |
Muszę jeszcze odkopać ten temat bo natrafiłem na pewien problem... więc tak...
skrypt na stronie umieszczam w postaci echo '<script src=\'script.js\' type=\'text/javascript\'></script>'; i jak wlasnie z poziomu php przenieść do script.js zmienne hours, min i sec |
|
|
26.03.2006, 17:32:02
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) |
Nie przekażesz nic do pliku scripts.js. Podaj te wartości jako parametry funkcji inicjującej odliczanie.
np. tak:
-------------------- -------------
------ |
|
|
27.06.2008, 08:11:41
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.06.2008 Ostrzeżenie: (0%) |
Odkopuję ten temat bo mam podobny problem, ale dodatkowo potrzebuję żeby mimo odświeżania strony odliczało dalej (a nie od nowa). Tu chyba cookies by pomogły
Mam nikłą wiedzę na temat JS więc będę wdzięczna za pomoc |
|
|
27.06.2008, 12:56:50
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) |
Potrzebna będzie obsługa ciastek stąd:
http://www.quirksmode.org/js/cookies.html I skrypt. Wygląda to tak że co sekundę jest zapisywane ciastko z aktualnym licznikiem. Po refreshu przy inicjacji licznika sprawdzana jest obecność ciastek, jeśli istnieje to stan licznika jest odczytywany z ciastka i użyty do inicjacji licznika. Jeśli ciastek nie ma to licznik startuje z domyślnymi wartościami. Przycisk usuń ciacha zeruje wszystko. Licznik jest zapamiętywany i po opuszczeniu strony nie idzie dalej. Aby licznik działał po opuszczeniu strony trzeba by zapamiętywać jeszcze czas i przy odczycie pobierać aktualny czas, wyliczać rożnicę w czasie i tą różnicę odejmować od licznika Wygląda to prosto ale takie nie jest
-------------------- -------------
------ |
|
|
27.06.2008, 22:10:07
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.06.2008 Ostrzeżenie: (0%) |
Super o to chodziło, dzięki
|
|
|
24.09.2010, 13:55:11
Post
#14
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 2 Dołączył: 22.03.2009 Ostrzeżenie: (0%) |
Witam mam problem skrypt działa ok ale jak zrobic aby przestał ladowac co sekunde jezeli zegarek dojdzie do 0 bo dalem ze ma sie pokazac formularz po X czasie i formularz sie pokazuje ale nie moge nic wpisac bo co sekunde ładuje go na nowo P
użyłem kod
problem rozwiazany trzeba bylo przestawic miejsce setTimeout("time();", 1000); Ten post edytował xavierek 24.09.2010, 14:01:00 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 14:32 |