21. februar 2006 - 21:32
Der er
7 kommentarer og 1 løsning
Nedtælling
Jeg skal bruge et script, hvor jeg i et formfelt skriver et minut tal. Når jeg trykker på submit skal den begynde en nedtælling fra det tal jeg indtastede. Der skal kun vises minutter og sekunder. Jeg håber at der er nogle der kan hjælpe. vh Ravnborg
Annonceindlæg fra Academic Work Denmark A/S
22. februar 2006 - 12:08
#1
NY: Jeg har fundet et script der ligner, men der er et par ting jeg gerne vil have med. 1: En pause og en reset knap ved hver nedtælling. 2: I stedet for en alert vil jeg gerne at billedet pic/bg.gif bliver ændret til pic/bg1.gif VH Ravnborg <script language="JavaScript"> <!-- function SymError() { return true; } window.onerror = SymError; var SymRealWinOpen = window.open; function SymWinOpen(url, name, attributes) { return (new Object()); } window.open = SymWinOpen; //--> </script> <script language="JavaScript"> <!-- Begin var up,down; var min1,sec1; var cmin1,csec1,cmin2,csec2; function Minutes(data) { for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break; return(data.substring(0,i)); } function Seconds(data) { for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break; return(data.substring(i+1,data.length)); } function Display(min,sec) { var disp; if(min<=9) disp=" 0"; else disp=" "; disp+=min+":"; if(sec<=9) disp+="0"+sec; else disp+=sec; return(disp); } function Up() { cmin1=0; csec1=0; min1=0+Minutes(document.sw.beg1.value); sec1=0+Seconds(document.sw.beg1.value); UpRepeat(); } function UpRepeat() { csec1++; if(csec1==60) { csec1=0; cmin1++; } document.sw.disp1.value=Display(cmin1,csec1); if((cmin1==min1)&&(csec1==sec1)) alert("Stopwatch Stopped"); else up=setTimeout("UpRepeat()",1000); } function Down() { cmin2=1*Minutes(document.sw.beg2.value); csec2=0+Seconds(document.sw.beg2.value); DownRepeat(); } function DownRepeat() { csec2--; if(csec2==-1) { csec2=59; cmin2--; } document.sw.disp2.value=Display(cmin2,csec2); if((cmin2==0)&&(csec2==0)) alert("Countdown Stopped"); else down=setTimeout("DownRepeat()",1000); } // End --> </script> </head> <body> <STRONG><CENTER> <FONT SIZE=+3>S</FONT><FONT SIZE=+2>TOP </FONT> <FONT SIZE=+3>W</FONT><FONT SIZE=+2>ATCH</FONT> </CENTER></STRONG> <HR WIDTH=25% ALIGN=center SIZE=2><BR><BR> <center> <form name="sw"> <table border="0" width="100%"> <tr align="center"><td> <table border="3" width="100%"> <tr><th colspan="2">Stopwatch</th></tr> <tr align="center"><td>Stop at<br><input type="text" name="beg1" size="7" value="0:10"></td> <td> <input type="button" value="Start" onclick="Up()"> <img src="pic/bg.gif" alt="" width="10" height="10" border="0"> </td></tr> <tr align="center"><td colspan="2"><input type="text" name="disp1" size="9"></td></tr> </table> </td><td> <table border="3" width="100%"> <tr><th colspan="2">Countdown</th></tr> <tr align="center"><td>Start at<br><input type="text" name="beg2" size="7" value="0:10"></td> <td> <input type="button" value="Start" onclick="Down()"> <img src="pic/bg.gif" alt="" width="10" height="10" border="0"> </td></tr> <tr align="center"><td colspan="2"><input type="text" name="disp2" size="9"></td></tr> </table> </td></tr></table> </form> </center> </body> </html> <script language="JavaScript"> <!-- var SymRealOnLoad; var SymRealOnUnload; function SymOnUnload() { window.open = SymWinOpen; if(SymRealOnUnload != null) SymRealOnUnload(); } function SymOnLoad() { if(SymRealOnLoad != null) SymRealOnLoad(); window.open = SymRealWinOpen; SymRealOnUnload = window.onunload; window.onunload = SymOnUnload; } SymRealOnLoad = window.onload; window.onload = SymOnLoad; //--> </script>
25. februar 2006 - 18:58
#2
Gad ikke lige at gennemskue scriptet, så lavede bare et nyt !-) <script type="text/javascript"> var intId = stTime = pTime = null; function runTime(f,act){ if(act=='pause' && intId){ clearInterval(intId); pTime = new Date(); return; } if(intId && act != 'start') clearInterval(intId); if(act == 'start' || act == 'reset'){ var nu = new Date(); var numMins = f.mins.value; if(!numMins.match(/^\d+$/) || (stTime && act == 'start' && !pTime)) return; if(pTime && act != 'reset'){ stTime = new Date(stTime.getTime() + nu.getTime() - pTime.getTime()); pTime = null; }else{ stTime = new Date(nu.getTime() + +numMins * 60000); if(act == 'reset') pTime = null; } moveTime(); intId = setInterval("moveTime()",1000) } } function moveTime(){ var nu = new Date(); var secs = Math.floor((stTime.getTime()-nu.getTime())/1000); var mins = Math.floor(secs/60); secs %= 60; document.getElementById("showRest").firstChild.nodeValue = mins + " minutter " + secs + " sekunder tilbage"; if(mins == 0 && secs == 0){ clearInterval(intId); intId = stTime = pTime = null; //en handling ved nul-tid her !-) } } </script> <form onsubmit="runTime(this,'start');return false;"> Nedtæl <input type="text" name="mins" size="2"> minutter <input type="submit" value="Start nedtælling"><br> <input type="button" value="Pause" onclick="runTime(this.form,'pause');return false;"><input type="button" value="Reset" onclick="runTime(this.form,'reset');return false;"><br> <span id="showRest"> </span> </form>
26. februar 2006 - 14:16
#3
> roenving Scriptet ser fint ud. Jeg kan se at du har lavet plads til at indsætte en handling ved nul-tid. Kan man lave det sådan at et billede bliver synlig ved nul-tid, og at der bliver afspillet en lyd-fil. vh Ravnborg
26. februar 2006 - 14:50
#4
Det med lyden har jeg aldrig beskæftiget mig med, så den kender jeg ikke, men der er adskillige spørgsmål her i kategorien om det, så du kan nok finde en, der dur ... -- billedvisningen kan f.eks. være: document.getElementById("mitBillede").style.display = "inline";
26. februar 2006 - 15:23
#5
Jeg har siddet og kikket lidt på det, uden held (hvilket jeg skal bruge en masse af, for at få javascript til at virke ;-). jeg har indsat: document.getElementById("alarm.gif").style.display = "inline"; i scriptet, hvad skal jeg indsætte i html, for at vise hvor billedet skal være?
26. februar 2006 - 20:48
#6
Så fik jeg det til at virke både med billede og lyd :-). Mange tak for hjælpen. Og opret lige et svar. VH Ravnborg
27. februar 2006 - 02:05
#7
Velbekomme '-)
27. februar 2006 - 23:05
#8
-- og tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling