Werfen wir zunächst einen Blick auf den vorherigen einheitlichen Bewegungscode und sehen, welche Art von Fehler nach der Änderung der Geschwindigkeit auftritt. Zum Testen sind hier zwei Benchmarks hinzugefügt
Warum passiert das dann?
Wenn er den Zielpunkt erreicht, kann er den Zielpunkt tatsächlich nicht genau erreichen. Wenn der Zielpunkt 100 beträgt und er jedes Mal sieben Mal läuft, passiert er entweder den Zielpunkt zu diesem Zeitpunkt oder er wird es tun nicht bestehen.Erreichen Sie niemals den Zielpunkt. Tatsächlich ähnelt es ein wenig dem vorherigen Puffer.
Wie berechnen Sie also, dass Sie den Zielpunkt erreicht haben?
Zum Beispiel: Wenn Sie mit dem Taxi zu einem bestimmten Ort fahren, muss der Fahrer etwa 10 oder 20 Meter von Ihrem Standort entfernt angehalten haben, dann sind Sie angekommen. Es ist unmöglich, das Auto zu bitten, an dieser Stelle anzuhalten.
Solange der Abstand zwischen dem Objekt und dem Zielpunkt nahe an einem bestimmten Niveau liegt, besteht keine Notwendigkeit, näher zu kommen, und wir denken, dass es erledigt ist.
Werfen wir einen Blick auf den geänderten Code:
time = setInterval(function() {
var speed = 0;
If (oDiv.offsetLeft < iTarget) {
Geschwindigkeit = 7;
} sonst {
Geschwindigkeit = -7;
}
If (Math.abs(iTarget - oDiv.offsetLeft) <= 7) {
oDiv.style.left=iTarget 'px';
} sonst {
oDiv.style.left = oDiv.offsetLeft speed 'px';
}
}, 30)
}
Erklären Sie: Warum verwenden wir Math.abs, um hier den absoluten Wert zu erhalten?
Der Grund ist einfach, denn die Geschwindigkeit kann positiv oder negativ sein.
Jetzt lassen wir den Abstand zwischen Ziel und Objekt kleiner als 7, das war’s. Warum ist es 7? Weil seine nächste Übung weniger als 7 sein wird. Zu diesem Zeitpunkt zählen wir, dass er den Zielpunkt erreicht hat.
Dann kommt das Problem wieder. Wenn er so schreibt, bleibt er nicht genau am Zielpunkt stehen. Also haben wir einen einfachen Satz hinzugefügt und links direkt mit dem Zielpunkt gleichgesetzt. oDiv.style.left=iTarget 'px';
Tatsächlich sind beim letzten Mal weniger als 7 Leute gegangen, aber jeder weiß, dass das Programm zu schnell läuft und für das menschliche Auge nicht sichtbar ist. Warmes Lächeln
Zu diesem Zeitpunkt wird es kein Problem geben. zwinker
Dies ist die Stoppbedingung für eine gleichförmige Bewegung. Dann fragten einige Freunde: Warum ist Pufferübungen nicht so mühsam?
Denn seine Geschwindigkeit verändert sich, wird immer kleiner, bis er am Ende sogar 1 erreicht. Wenn man Schritt für Schritt voranschreitet, wird es dieses Problem definitiv nicht mehr geben.