Ich versuche, den folgenden Code zu verwenden, um die Nummer in einem Textfeld zu erhöhen
%Vor%es arbeitet mit kleinen Zahlen wie von 0 bis 100 aber wenn es um große Anzahl wie in dem erwähnten Code geht, es gibt nicht die Zielnummer, es animiert zu Zahlen wie 1099933 oder 1099610 oder ..... und jedes Mal, wenn es sich ändert.
also wie kann ich es machen, um zu der Zahl zu animieren, die ich spezifiziere?
Ich habe das gleiche Problem. Der Grund dafür ist, dass animate
function eine mathematische Formel verwendet, die zeitbasiert ist. Sie bemerken das nicht wirklich, wenn Sie etwas basierend auf css animieren, weil es nahe genug in Pixeln ist. Es nähert sich dem Endwert, ist aber möglicherweise nicht immer genau der Endwert. Lösung: Verwenden Sie das Ereignis complete
, um den letzten Wert festzulegen.
Hier ist was Sie tun müssen:
1) Javascript ist eine Single-Thread-Anwendung. Timeouts und Animationen schieben das Ereignis NUR auf der Grundlage einer idealen Stapelreihenfolge an das Ende des Stapels. Ein lang laufender Skriptabschnitt kann die tatsächliche Auslösezeit dieses Ereignisses weit über die Genauigkeit hinaus verursachen, die Sie suchen.
2) Die Animation approximiert, um wie viel erhöht werden soll, und bei größeren Zahlen ist die Auflösung sehr ungenau.
3) jQuery hat nur einen Animationspuffer. Es kann zu ernsthaften Renderproblemen kommen, wenn Sie mehr als einen "Counter" mit Animation aufrufen. Stellen Sie sicher, dass Sie die vorherige Animation stoppen, bevor Sie Änderungen daran vornehmen.
4) Auch bei einer Zeitüberschreitung von 0 können Sie eine Verzögerung von ~ 15 erwarten. Auch wenn das der einzige "Thread" ist, den Sie gerade ausführen.
Lösung:
%Vor%Animate ist nicht designed , um einen Zähler als Text zu erhöhen (obwohl es zufällig funktioniert, was sich bei jeder neuen Version von jQuery ändern könnte), es ist designed zu animieren eine oder mehrere CSS-Eigenschaften. Sie sollten stattdessen setInterval verwenden.
%Vor% Hier ist eine Lösung, die .animate()
nicht verwendet.
DEMO: Ссылка
Es ist nur eine lineare Modifikation; Sie haben nicht die Lockerung Optionen, wenn Sie das wollten.
%Vor%Hier ist ein jQuery-Plugin, um Zahlen zuverlässig zu animieren, ut verwendet den vollständigen Rückruf, um die korrekte Endnummer zu setzen, sobald die Animation beendet ist:
Tags und Links javascript html jquery