Autor | Zpráva | ||
---|---|---|---|
perwin Profil |
#1 · Zasláno: 4. 4. 2011, 19:41:13
Ahoj,
potřeboval bych radu. Potřebuji vyrobit nějakou funkci v JS: 1) Kliknu na element (button, input,..) -> spustí se odpočet (např. 5 minut) 2) Doběhne odpočet -> zapne se další funkce (to je už jedno jaká, to si pak nastavím sám) Jde hlavně o to, aby - tam bylo vidět to odpočítávání v real čase - měl uživatel možnost to odpočítávání zrušit Sice mi už přijde blbý se na vás stále obracet s těmito otázkami, ale prohledával jsem Google a našel jsem sice hodně odpočtů a podobných funkcí, ale bohužel se mi nepovedlo je přizpůsobit podle sebe. Prosím poraďte. Děkuji |
||
TomasJ Profil |
#2 · Zasláno: 4. 4. 2011, 19:59:50 · Upravil/a: TomasJ
<html> <head> <script> var Cas; //Proměnná pro čas var timer; //Proměnná pro interval function StartOdpocet(time) { if(time){Cas = time;}else{Cas=60;} //Nastaví se, kolik se má odpočítávat, pokud se nezadá parametr time, nastaví se 60 if(!timer){timer = setInterval(Odpocet,1000);} //Nastaví se interval na 1 sekundu a do proměnné timer se uloží jeho "ID" } function Odpocet() { if(Cas>0){Cas--;document.getElementById('countdown').innerHTML=Cas;} //Vypíšeme proměnnou Cas do elementu s ID="countdown" else{clearInterval(timer);/* DalsiFunkce(); */} //Zrušíme interval } function KonecOdpocet(){if(timer)clearInterval(timer);timer=false;} //Funkce zruší interval (zastaví se odpočet) </script> </head> <body> <button onclick="StartOdpocet(120);">Start odpočtu</button> <!-- Po kliknutí se nastaví odpočet na 120 sekund --> <div id="countdown"></div> <!-- Tady se bude zobrazovat aktuální čas (odpočtu) --> </body> </html> |
||
perwin Profil |
#3 · Zasláno: 4. 4. 2011, 20:08:16 · Upravil/a: perwin
TomasJ:
No díky moc :-) takhle rovnou jsem to teda nečekal :-) EDIT: Jak je na řádku 15 else {clearInterval(timer); /* DalsiFunkce(); */} l |
||
TomasJ Profil |
#4 · Zasláno: 4. 4. 2011, 20:16:42 · Upravil/a: TomasJ
perwin:
[...] else{clearInterval(timer); alert('ahoj');} //Zrušíme interval Musíš odstranit /* a */, to co je uvnitř, je komentář. EDIT: Pak si samozřejmě přidáš tlačítko ke zrušení: <button onclick="KonecOdpocet();">Konec odpočtu</button> EDIT2: Do funkce KonecOdpocet() jsem na konec zapomněl dát timer=false;, aby se dal odpočet spustit zase. |
||
perwin Profil |
#5 · Zasláno: 4. 4. 2011, 20:31:27
TomasJ:
No tak zle na tom zase nejsem, :D else{clearInterval(timer); alert('ahoj');} Tlačítko na konec odpočtu jsem si tam už přidal, a toho že to nelze zapnout znovu jsem si ani nevšiml :D Díky |
||
TomasJ Profil |
#6 · Zasláno: 6. 4. 2011, 20:34:36
perwin:
Mně to právě normálně funguje... Hoď sem kód. |
||
Časová prodleva: 10 dní
|
|||
perwin Profil |
#7 · Zasláno: 17. 4. 2011, 07:53:45
TomasJ:
No už mi to funguje... Ale potřeboval bych ještě něco. Jak lze převést ta proměnná Cas na čas ve formátu: h:mm:ss? Protože když se mi odpočítává např. číslo 65, tak to je: 65, 64, 63, 62, 61, 60, 59... A bych to chtěl jako: 0:01:05, 0:01:04, 0:01:03, 0:01:02, 0:01:01, 0:01:00, 0:00:59,.... Prosím poraďte. Děkuji |
||
mark92 Profil |
#8 · Zasláno: 17. 4. 2011, 15:01:00 · Upravil/a: mark92
Toto som zlúskal už dávnejšie. Pri čase kratšom, ako 1 deň sa dni nezobrazujú.
<span id="c"></span> <script> var cas=31536000; //počet sekúnd odpočtu var znaky = "d,h,m,s".split(","); odpocet();o=setInterval("odpocet()",1000); function odpocet(){ c = cas; if (c<0){clearInterval(o);koniec();return;} var z=""; var d=Math.floor(c/86400); var h=Math.floor(c%86400/3600); var m=Math.floor(c%86400%3600/60); var s=Math.floor(c%86400%3600%60); if(m<10){m="0"+m} if(s<10){s="0"+s} if(d>0){z+=d+" "+znaky[0]+" ";} z+=h+" "+znaky[1]+" "+m+" "+znaky[2]+" "+s+" "+znaky[3]; document.getElementById("c").innerHTML=z; c--; cas=c;} function koniec() { alert("koniec_odpoctu"); } </script> |
||
perwin Profil |
#9 · Zasláno: 17. 4. 2011, 17:46:13
mark92:
Díky moc :-) |
||
Časová prodleva: 13 let
|
0