Ich habe ein Problem mit einer Formel in JavaScript.Formel berechnet nicht korrekt in JavaScript
var animMoveX = $(this).attr('data-start') + (animPercentage/100) * ($(this).attr('data-finish') - $(this).attr('data-start'));
In meinen Augen ist es ein ziemlich einfaches Stück Mathematik, aber die Konsole Ausgänge 120- [Variable nicht in Bezug auf animPercentage, zum Beispiel. 126.49681528662421].
Ich habe alle Variablen überprüft, und sie sind korrekt, und wenn ich eine der Variablen $ (this) .attr ('data-start') in einer der Positionen mit einer festen Zahl ersetzen, dann Die Berechnung läuft einwandfrei. Kann jemand etwas Licht darüber werfen, warum dies so ist und wie ich möglicherweise daran arbeiten könnte?
Sie können '$ (this) .data (" start ")' anstelle von '$ (this) .attr verwenden (" data-start ")' – Pointy
Precedence bedeutet, dass es eine Zahl berechnet rechts und füge es zum * string * von data-start hinzu (dh mit String-Verkettung). Das muss auch in eine Zahl umgewandelt werden. @ Pointys Vorschlag wird das tun, während "Daten" Strings in geeignete Datentypen konvertiert (wenn es möglich ist). –
Danke an euch beide! – SorenRomer