for-Schlefen verzögern
Hartmut Scheller
- javascript
Hallo
Ich versuche gerade mit JavaScript einen Schreibmaschinen-Effekt zu basteln, weiß aber nicht wie ich eine Schleife verzögern kann.
Bei folgender Funktion wird mein Array als komplettes Wort ausgegeben, also denke ich, dass ich diese Schleife nur verzögern muß... aber wie?
array = new array("b","l","a");
function bla(array)
{
for (x=0; x < array.length; ++x)
<!-- Hier soll eine kleine Verzögerung rein -->
document.write(text[x]);
}
Ich hab's mit setTimeout versucht, hab's aber nicht geschafft.
Meine Literatur gibt übers Schleifenverzögern auch nicht so viel her, und der gute alte 'delay' Befehl aus TurboPascal-Zeiten funktioniert auch nicht mehr :(
Kann mir jemand helfen?
Hi,
also wenn du schonmal
array = new array("b","l","a");
das array hast, kann eine function eine
zweite functiona aurrufen, diese die Ausgabe abwickeln
und dann einen timeout starten welcher wieder die
erste function ruft.
Du brauchst dann in einer function den Zähler
wie in der for-schleife damit es irgendwann
aufhört, und du musst es auch irgendiwe,
beim Seitenaufbvau usw., starten.
Vorher solltest du aber vielleicht nochmal überlegen was mit
document.write bei schon vorhandener Seite geht oder nicht.
Ich vermute dass z.B. do with geeignet wäre,
als modell für das Timing kannst du natürlich erstmal
statt document.write die statuszeile verändern.
Grüsse
Cyx23
Hallo Hartmut!
Ich versuche gerade mit JavaScript einen Schreibmaschinen-Effekt zu basteln, weiß aber nicht wie ich eine Schleife verzögern kann.
Hier mal ein Beispiel was deine Frage beantworten sollte:
<head>
<script>
j=0;
t="Dieser Text wird ganz langsam angezeigt";
function zeigen()
{
if(j<t.length)
document.forms[0].tttext.value+=t.charAt(j++);
else
clearInterval(timer);
}
</script>
</head>
<body onLoad="setInterval('zeigen();',125);">
Hier kommt der Text:
<form>
<input type=text size=40 name="tttext">
</form>
</body>
..aber es löst dein Problem nicht: Wenn du den Text richtig im Dokument stehen haben willst, also nicht in einem Formularfeld, dann wird es 'richtiges' DHTML mit allen Schikanen[1].
Gruss,
Carsten
[1] im wahrsten Sinne des Wortes. http://wwwtech.de und http://www.dansteinman.com/dynduo/ führen da weiter, aber mit einem Sonnabend Nachmittag ist es dann nicht mehr getan.
kleine Korrektur:
<body onLoad="setInterval('zeigen();',125);">
da fehlt was:
<body onLoad="timer=setInterval('zeigen();',125);">
sonst müllt es die Javascript Konsole ganz bös zu :(
Gruss,
Carsten