Autor | Zpráva | ||
---|---|---|---|
donald21 Profil |
Zdravím všechny,
našel jsem tedy nebo i jinde plno javascriptů, které odpočítávají čas. To je super, ale já bych potřeboval něco navíc. Vybral jsem si tento JS: <span id='cas'></span> <script> var x = new Date(2012,03,11,20,00,00);//11.3.2012 20:00:00 UTC (nie 23.10) + oprava zobrazenia podľa časového pásma (čas treba zadať v UTC) window.setInterval(function(){window.document.getElementById('cas').innerHTML=(new Date(x-new Date())).toLocaleTimeString();},1000); </script> Kód mi funguje na 100 %, ale... JS ještě moc neumím, a proto byc chtěl poprosit, aby mi kód někdo upravil tak, aby se po vypršení limitu (tzn. když bude ukazatel ukazovat: 0:00:00) odpočet skryl a stránka refreshovala (nebo přesměrovala na jinou). Pozn. když je čas na 0:00:00 a uběhne další sekunda tak časomíra běží od 23:59:59 a je to zase celé znovu. Hlavní otázka je: Jak stránku refreshnout nebo přesměrovat po vypršení limitu? Děkuji za pomoc. //EDIT: neusí to být nutně přes ten JS co jsem vložil, kdyby někdo věděl jak to udělat |
||
Bronzi Profil |
#2 · Zasláno: 11. 3. 2012, 23:03:34
Zkus něco takového:
<span id='cas'></span> <script> var x = new Date(2012,03,11,20,00,00);//11.3.2012 20:00:00 UTC (nie 23.10) + oprava zobrazenia podľa časového pásma (čas treba zadať v UTC) var interval = window.setInterval(function(){var rozdil = x-new Date(); if(rozdil == 0){ clearInterval(interval); location.reload(true); } window.document.getElementById('cas').innerHTML=(new Date(rozdil)).toLocaleTimeString();},1000); </script> |
||
donald21 Profil |
Podle kódu jsem pochopil co by to mělo udělat, ale neprovedlo se to. Čas se mi opět přetočil na 23:59:59 a počítá se znovu, stránka se také nenačetla znovu. I když jsem stránku refreshnul znovu ručně, tak se čas odpočítával od začátku.
|
||
Chamurappi Profil |
#4 · Zasláno: 12. 3. 2012, 11:02:58
Reaguji na Bronziho:
„if(rozdil == 0)“ Šance, že se při sekundovém intervalu trefíš na milisekundu přesně, je docela malá, takže by tam mělo být menšítko. Reaguji na donalda21: „new Date(2012,03,11,20,00,00)“ To je 11. dubna. Nedoporučuji psát jednociferné měsíce s nulou, značí osmičkovou soustavu, takže 08 může být 0 .
|
||
Časová prodleva: 3 roky
|
|||
Endy Profil * |
#5 · Zasláno: 25. 5. 2015, 19:38:46
Prosím vás,
jak mám nastavit na INPUT vynulování odpočtu? viz níže <body> <form action="sss.html" method="post" name="pocitadlo" id="odpocet" accept-charset="utf-8" class="odpoc"> <font size="4"> <div class="CountDown" data-date="2015-5-27 20:15" data-notexpired="Do konce odpočtu zbývá:" data-expired="Čas vypršel!" style=" width: 300px; "></div> <script> window.onload = function (time) { loadCountDowns(); } function loadCountDowns(){ elements = document.getElementsByClassName("CountDown"); countDowns = new Array(); for (var i = 0; i < elements.length; i++) { countDowns[i] = new CountDown(elements[i]); countDowns[i].Refresh(); setInterval("countDowns["+i+"].Refresh()", 1000); } } function CountDown(element){ this.element = element; this.date = new Date(this.element.dataset.date.replace(new RegExp(/-/g), "/")); this.notExpiredLabel = typeof this.element.dataset.notexpired == "undefined" ? "" : this.element.dataset.notexpired; this.expiredLabel = typeof this.element.dataset.expired == "undefined" ? "" : this.element.dataset.expired; this.Refresh = function(){ var diff = Math.round((this.date.getTime() - new Date().getTime()) / 1000); if(diff <= 0){ this.element.innerHTML = "<span class='expirationLabel'>" + this.expiredLabel + "</span>" } else{ var s = diff % 60; var m = (diff - s) / 60 % 60; s = new TimePart(s, "secs", ["sekunda", "sekundy", "sekund"]); m = new TimePart(m, "mins", ["minuta", "minuty", "minut"]); this.element.innerHTML = "<span class='expirationLabel'>" + this.notExpiredLabel + "</span><span class='countdowning'>" + m.formatedPart + s.formatedPart + "</span>"; } } } function TimePart(number, className, labels){ this.number = number; this.twoDigitNumber = "<span class='number'>" + (this.number < 10 ? "<span class='leadingZero'>0</span>" : "") + this.number + "</span>"; this.label = "<span class='label'>" + (this.number == 1 ? labels[0] : (this.number < 5 & this.number != 0 ? labels[1] : labels[2])) + "</span>"; this.formatedPart = "<span class='timePart " + className + (this.number == 0 ? " zero" : "") + "'>" + this.twoDigitNumber + this.label + "</span>"; } </script> <style> .CountDown .leadingZero { display: none; } .CountDown .number{ font-size: 100%; } .CountDown .timePart{ margin: 5px 5px 0px 0px; float: left; width: 135px; text-align: center; } .CountDown .label{ display: block; color: black; } .CountDown { font-family: Calibri; height: 100px; } .CountDown .timePart, .CountDown .expirationLabel{ background: linear-gradient(to bottom, rgba(167,207,223,1) 0%,rgba(35,83,138,1) 100%); border-radius: 5px; padding: 5px; box-shadow: gray 3px 3px 10px; } .CountDown .expirationLabel{ background: linear-gradient(to bottom, rgba(35,83,138,1) 0%,rgba(167,207,223,1) 100%); display: block; font-size: 110%; width: 285px; } </style> </p> <br> <p> <input name="vynulovat" type="reset" onclick="loadCountDowns(0);" value="Přeruš to!!" style="border-radius: 50%; width: 100px; height: 100px; background: rgb(203, 36, 36); /* display: inline-block */"> </p> </form> |
||
Časová prodleva: 8 let
|
0