webForumDet fria alternativet

Javascript hjälp

JavaScriptur Javascript

3 svar · 1 116 visningar · startad av WilleB

Medlem sedan okt. 200934 inlägg
Frågan#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>
Medlem 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.

Medlem 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>

Medlem 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>
143 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)