Avatar billede ravnborg Nybegynder
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
Avatar billede ravnborg Nybegynder
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>
Avatar billede roenving Novice
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">&nbsp;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">&nbsp;</span>
</form>
Avatar billede ravnborg Nybegynder
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
Avatar billede roenving Novice
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";
Avatar billede ravnborg Nybegynder
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?
Avatar billede ravnborg Nybegynder
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
Avatar billede roenving Novice
27. februar 2006 - 02:05 #7
Velbekomme '-)
Avatar billede roenving Novice
27. februar 2006 - 23:05 #8
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester