webForumDet fria alternativet

Javascript hjälp

3 svar · 1 116 visningar · startad av WilleB

WilleBMedlem sedan okt. 200934 inlägg
#1

Ja försöker fixa en liten countdown här, nån snäll grabb som kan hitta felet?

		<script language="javascript">
			function startclock() {
				var mins = document.getElementById("minutes").value;
				var secs = document.getElementById("seconds").value;
				if (mins == 0) {
					if (secs == 0) {
						mins--;
						var secs = 60;
					}
					secs--;
					document.getElementById("minutes").value=mins;
					document.getElementById("seconds").value=secs; 
					document.getElementById("counter").innerHTML="<h3>"+mins+":"+secs+"</h3>";
					setTimeout("startclock()",1000);
				}
			}
		</script>
voigtann1Medlem sedan juni 20019 519 inlägg
#2

Känns som du saknar en hel del kod.

koden kommer förmodligen aldrig att köras om inte mins är 0, sen kan du optimera koden rätt så ordentligt.

thoor1Medlem sedan maj 20115 inlägg
#3

<html>
<body>
<form name="cform">
<input type="text" name="disp" size=28 style="width: 300px;">
</form>
<script type="text/javascript">
/* Detta script finns att hämta på http://www.jojoxx.net och
får användas fritt så länge som dessa rader står kvar. */

var year = 2012;
var month = 05;
var day = 3;
var hour = 14;
var minute = 00;
var second = 0;

// Do not edit lines below.
var then = new Date(year,month-1,day,hour,minute,second);
function runMany(){
var now = new Date();
if (now < then){
var days = Math.floor((then-now)/(1000*60*60*24));
var hours = Math.floor((then-now-days*1000*60*60*24)/(1000*60*60));
var mins = Math.floor((then-now-days*1000*60*60*24-hours*1000*60*60)/(1000*60));
var secs = Math.floor((then-now-days*1000*60*60*24-hours*1000*60*60-mins*1000*60)/(1000));
var tsecs = Math.floor((then-now-days*1000*60*60*24-hours*1000*60*60-mins*1000*60-secs*1000)/(100));
document.cform.disp.value = days + " dagar, " + hours + " timmar, " + mins + " minuter, " + secs + ":" + tsecs + " sekunder";
}
setTimeout("runMany();",100);
}
runMany();
</script>
</body>
</html>

WilleBMedlem sedan okt. 200934 inlägg
#4

Okej, jag fick de att fungera nu.
Märkte inte ens att det stod == 0 istället för !== 0 :p

Postar koden ifall nån vill ha den :)

<html>
<head>
<script language="javascript">
	function startclock() {
		var mins = document.getElementById("minutes").value;
		var secs = document.getElementById("seconds").value;
		if (mins > -1) {
			if (secs == 0) {
				mins--;
				var secs = 60;
			}
			secs--;
			document.getElementById("minutes").value=mins;
			document.getElementById("seconds").value=secs;
			if (secs < 10) {
				var secs = "0"+secs+"";
			}
			if (mins == -1 && secs == 59) { // Makes the timer not say -1:59 at the end
				var mins = "0";
				var secs = "00";
			}
			document.getElementById("counter").innerHTML="<h2>"+mins+":"+secs+"</h2>";
			setTimeout("startclock()",1000);
		}
	}
</script>
</head>
<body onload="javascript:startclock()">
		
<input type="hidden" id="minutes" value="5">
<input type="hidden" id="seconds" value="0">
		
<div id="counter"></div>
</body>
</html>
131 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)