| 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 intervalMusíš 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: 15 let
|
|||
0