In meinem Code möchte ich eine Linie zeichnen. Dafür setze ich Punkte nach der Geradengleichung. Und ich möchte auch eine Verzögerung von 100 Millisekunden, bevor der nächste Punkt gedruckt wird. Also habe ich setTimeout() verwendet. Aber wenn ich diesen Code ausführe, wartet er zunächst einige Zeit und druckt dann alle Punkte auf einmal ohne Verzögerung von 100ms. Hier ist mein Code für das Zeichnen Linie:Wie funktioniert setTimeout() in JavaScript?
function drawLine(x1, y1,x2,y2){
var x, y, m;
m=(y2-y1)/(x2-x1);
for(x=x1;x<=x2;x++){
y=(m*(x-x1)+y1)/6;
setTimeout(drawPoint,100,x,y);
}
}
function drawPoint(a,b){
main=document.getElementById("main"); //parent div tag in which children div tags are to be appended
var children=main.childNodes;
var child=document.createElement("div");
child.className="anime";
child.style.left=a+"px";
child.style.top=300-b+"px"; //300 is some offset
main.appendChild(child);
}
Jede Hilfe wird sehr geschätzt.
'for-loop' ist' non-blocking' – Rayon
* setTimeout * unterbricht die Schleife nicht, so dass sie alle gleichzeitig mit der gleichen Verzögerung eingestellt werden. Darüber hinaus werden zusätzliche Argumente über 2 nicht von allen Browsern unterstützt. – RobG
Danke @RayonDabre, was soll ich dann tun? –