Grundsätzlich brauche ich die Breite einer Spanne. Um mehrere benutzerdefinierte Zeichen zu verwenden, die nicht auf einer Tastatur gefunden werden, erstelle ich mein eigenes "Eingabe" -Feld mit einem "div". Jedes Zeichen wird in ein "span" -Tag eingeschlossen, an das ein Ereignis-Listener angehängt ist. Dadurch kann der Benutzer auf eine beliebige Stelle in der Zeichenfolge klicken und den Cursor an eine Position hinter einem Zeichen bewegen. Außerdem können Zeichen in der Mitte einer Zeichenfolge hinzugefügt oder gelöscht werden.Finden Sie die Breite eines Auto-Größe Element
Ich benutze "offsetLeft" und "offsetWidth", um die rechte Seite eines Zeichens zu finden, das Problem ist, wenn ein Zeichen/Bereich angeklickt wird, ist die "offsetWidth" weg. Wenn ich zum Beispiel eine 14-Pixel-Schriftart verwende, wird ein "M" als 35 Pixel breit zurückkommen, wenn es tatsächlich 11 Pixel ist. Und es gibt mehrere Variationen, ein durchschnittlich großes Zeichen wie ein "S" wird bei 26 Pixeln zurückkommen, wenn es tatsächlich 9 ist. Es gibt also Variationen in der Dimensionierung. Jetzt magst du dich fragen, wie ich die tatsächliche Buchstabengröße gefunden habe und das Firebug verwendet hat. Was, wenn Firebug es finden kann, würde ich annehmen, kann ich, ich habe gerade nicht herausgefunden, wie. Ich hoffe also, dass hier jemand weiß.
Ich habe auch versucht mit "getComputedStyle" und "currentStyle, um die Breite zu finden und es gibt" auto ". Auch versucht getBoundingClientRect(). Breite es gleich OffsetWidth, mit dem Unterschied, dass es auch die Brüche eines Pixels findet in der Breite, so dass ein „M“ ist 35,366668701171875 Pixel breit, ungerade
EDIT:.
Basierend auf user1289347 Post soll ich habe festgestellt, dass die „offset“ die „offsetleft“ verursacht durch die fehlerhafte Menge aus sein
Willkommen bei [SO]. Ich kann sehen, dass Sie bereits einige Male gepostet haben, aber ich denke, dass Sie [Markdown for SO] (http://stackoverflow.com/editing-help) überprüfen müssen. – zzzzBov
Haben Sie einen Javascript-Debugger verwendet, um das Stilelement in dom zu betrachten und zu sehen, was der beste Weg zu sein scheint, diese Informationen zu finden? –
firebug: https://getfirebug.com/layout – dsdsdsdsd