02. november 2007 - 12:25
Der er
10 kommentarer og 1 løsning
For-løkke med setTimeout
Jeg kan ikke finde ud af hvordan man laver en for-løkke med ventetid så den venter 1 second efter hver løkke Kan nogen hjælpe mig???
Annonceindlæg fra Cognizant
02. november 2007 - 12:34
#1
Du må lægge den i en funktion: ------------------------------ var i=0, iter=10; function MyLoop(){ for(;i<iter;i++){ //kommandoer setTimeout("MyLoop()",1000); } } ------------------------------ Men så er der jo egentlig ikke meget grund til at have en for-løkke. ;) Så bare: ------------------------------ var i=0, iter=10; function MyLoop(){ //kommandoer i++; if(i=iter) setTimeout("MyLoop()",1000); } ------------------------------ Alt afhængigt af dit formål, kunne du også bare ha' det i en setInterval, men den skal jo så stoppes, når for-løkken er slut.
02. november 2007 - 12:49
#2
Altså jeg vil gerne lave en side hvor du kan skrive et tal ind så den ændrer højden på min div langsomt. Min kode indtil videre ser Sådan her ud: -------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Graf</title> <style> div.graf1 { background: red; hieght: 0px; width: 90px; } div.graf2 { background: #000000; height: 0px; width: 90px; } div.graf3 { background: #000000; height: 150px; width: 90px; } div.graf4 { background: #000000; height: 180px; width: 90px; } tr.Grafbox { vertical-align: bottom; } td.tdLeftBottom { border-left: 1px solid #000000; border-bottom: 1px solid #000000; } td.tdBottom { border-bottom: 1px solid #000000; } td { padding: 10px; padding-bottom: 0px; } </style> </head> <body> <form name="fGraf"> <table cellspacing="0" border="0" height="500px"> <tr class="Grafbox"> <td rowspan="2"><input name="inGraf1"><br> <input name="inGraf2"><br> <input name="inGraf3"><br> <input name="inGraf4"><br> <button name="KnapVisGraf">Vis graf</button></td> <td class="tdLeftBottom"><div class="graf1" id="idGraf1"></div></td> <td class="tdBottom"><div class="graf2" id="idGraf2"></div></td> <td class="tdBottom"><div class="graf3"></div></td> <td class="tdBottom"><div class="graf4"></div></td> </tr> <tr> <td colspan="4"></td> </tr> </table> </form> <script language="javascript"> <!--Variabler--> var vGraf1=0 var vGraf2=0 var vGraf3=0 var vGraf4=0 <!--Events--> document.fGraf.KnapVisGraf.onclick=funGraf1; <!--Funktioner--> function funGraf1() { vGraf1=document.fGraf.inGraf1.value; document.getElementById('idGraf1').style.height=vGraf1; for (i=1;i<200;i=i+1) { setTimeout("document.getElementById('idGraf2').style.height=i;",1000); </script> </body> </html>
02. november 2007 - 12:59
#3
Ok. Men kan du ikke bare bruge mit sidste eksempel så? Lige nu i din kode mangler du i øvrigt at afslutte både for-løkken og funktionen.
02. november 2007 - 13:02
#4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Graf</title> <style> div.graf1 { background: red; hieght: 0px; width: 90px; } div.graf2 { background: #000000; height: 0px; width: 90px; } div.graf3 { background: #000000; height: 150px; width: 90px; } div.graf4 { background: #000000; height: 180px; width: 90px; } tr.Grafbox { vertical-align: bottom; } td.tdLeftBottom { border-left: 1px solid #000000; border-bottom: 1px solid #000000; } td.tdBottom { border-bottom: 1px solid #000000; } td { padding: 10px; padding-bottom: 0px; } </style> </head> <body> <form name="fGraf"> <table cellspacing="0" border="0" height="500px"> <tr class="Grafbox"> <td rowspan="2"><input name="inGraf1"><br> <input name="inGraf2"><br> <input name="inGraf3"><br> <input name="inGraf4"><br> <button name="KnapVisGraf">Vis graf</button></td> <td class="tdLeftBottom"><div class="graf1" id="idGraf1"></div></td> <td class="tdBottom"><div class="graf2" id="idGraf2"></div></td> <td class="tdBottom"><div class="graf3"></div></td> <td class="tdBottom"><div class="graf4"></div></td> </tr> <tr> <td colspan="4"></td> </tr> </table> </form> <script language="javascript"> <!--Variabler--> var vGraf1=0 var vGraf2=0 var vGraf3=0 var vGraf4=0 <!--Events--> document.fGraf.KnapVisGraf.onclick=funGraf1; <!--Funktioner--> var i=0; function funGraf1() { vGraf1=document.fGraf.inGraf1.value; document.getElementById('idGraf1').style.height=vGraf1; i++; if(i>200) setTimeout("document.getElementById('idGraf2').style.height=i;",1000); } </script> </body> </html>
02. november 2007 - 13:03
#5
Hov: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Graf</title> <style> div.graf1 { background: red; hieght: 0px; width: 90px; } div.graf2 { background: #000000; height: 0px; width: 90px; } div.graf3 { background: #000000; height: 150px; width: 90px; } div.graf4 { background: #000000; height: 180px; width: 90px; } tr.Grafbox { vertical-align: bottom; } td.tdLeftBottom { border-left: 1px solid #000000; border-bottom: 1px solid #000000; } td.tdBottom { border-bottom: 1px solid #000000; } td { padding: 10px; padding-bottom: 0px; } </style> </head> <body> <form name="fGraf"> <table cellspacing="0" border="0" height="500px"> <tr class="Grafbox"> <td rowspan="2"><input name="inGraf1"><br> <input name="inGraf2"><br> <input name="inGraf3"><br> <input name="inGraf4"><br> <button name="KnapVisGraf">Vis graf</button></td> <td class="tdLeftBottom"><div class="graf1" id="idGraf1"></div></td> <td class="tdBottom"><div class="graf2" id="idGraf2"></div></td> <td class="tdBottom"><div class="graf3"></div></td> <td class="tdBottom"><div class="graf4"></div></td> </tr> <tr> <td colspan="4"></td> </tr> </table> </form> <script language="javascript"> <!--Variabler--> var vGraf1=0 var vGraf2=0 var vGraf3=0 var vGraf4=0 <!--Events--> document.fGraf.KnapVisGraf.onclick=funGraf1; <!--Funktioner--> var i=0; function funGraf1() { vGraf1=document.fGraf.inGraf1.value; document.getElementById('idGraf1').style.height=vGraf1; i++; if(i<200) setTimeout("document.getElementById('idGraf2').style.height=i",1000); } </script> </body> </html>
02. november 2007 - 13:20
#6
Ja Tak. Det virker fint bortset fra det med at den ikke stiger langsomt
02. november 2007 - 13:21
#7
Ret funGraf1 til: function funGraf1() { vGraf1=document.fGraf.inGraf1.value; document.getElementById('idGraf1').style.height=vGraf1; i++; if(i<200) { document.getElementById('idGraf2').style.height=i; setTimeout("funGraf1()", 100); } }
02. november 2007 - 13:36
#8
Ja, den smuttede lige.
02. november 2007 - 13:53
#9
Mange tak det virker jo lige som det skal(-:
02. november 2007 - 14:25
#10
100% til w13.
02. november 2007 - 17:36
#11
Ok. =) Tak. Og her er et svar.
Vi tilbyder markedets bedste kurser inden for webudvikling