Javascript
<script> let i; function zahlen() { document.meinformular.meintextfeld.value = i; i++; } setInterval(zahlen, 1000); </script>
Mittels setInterval() kann man einfach eine Zeitschleife programmieren. Der erste Parameter benötigt einen Verweis auf eine Funktion, der zweite Parameter die Dauer des Zeitintervals in Millisekunden
Hier geht es um eine Anzeige in Minuten und Sekunden. Man braucht dazu 2 weitere Variablen (Minuten, Sekunden) und eine if-Struktur. Wenn die Sekunden höher als 60 sind, werden sie auf 0 gesetzt und die Minuten werden um 1 erhöht.
Wenn man eine Uhr mit Zeigern programmieren will, kann man Bilder für die Zeiger verwenden und diese mit CSS drehen.
Wenn man setInterval einer Variable zuweist, kann man mittels clearInterval()
die Schleife stoppen:
var start = setInterval(move,1000); clearInterval(start);
Will man innerhalb einer Klasse setInterval
oder auch setTimeout
nutzen, hat man das Problem, dass man nicht auf das this
die Klasse zugreifen kann.
Dieses Thema wird auch auf der Seite: iTechNote Javascript Refering this ausführlich beschrieben.
Mittels einer Big Arrow Funktion kann man das Problem lösen, da die kein eigenes this
besitzt.
'use strict'; class Car { constructor(xPos){ this.xPos = xPos; } move(){this.xPos++; console.log(this.xPos);}; start; go(){ this.start = setInterval( () => this.move(), 1000); }; stop(){clearInterval(this.start)} ; } var ford = new Car(1); ford.go(); setTimeout(function(){return ford.stop();}, 5000); setTimeout(function(){return ford.go();}, 7000);
Mit weiteren Beispiele wird daraus ein animiertes Auto erstellt, welches quer über das Fenster fährt.
Ich habe noch 2 weitere Beispiele erstellt, bei denen die Zeitschleife mit requestAnimationFrame erzeugt wird.
Siehe auch die Beispiele unter dem Thema HTML Element erweitern