Schrumpfen font-size auf den ein Benutzer eingibt, um zu passen in eine Eingabe mit Javascript
Apples MobileMe verwendet javascript zum ändern der Schriftgröße in den E-Mail login auf der homepage als Benutzer-Typen, so dass der text immer passt in den verfügbaren Raum, ohne überlauf-scrollen.
Während ich kann sehen, wie, wie Sie eine Funktion ausführen, die auf jeden Tastendruck, ich bin gespannt, wie es einem gehen würde, zu berechnen die font-size jeder Zeit, so dass es immer passt in das Eingabefeld ein. Gibt es eine Möglichkeit, Messen Sie die Länge von einem Stück text mit einer variable Breite schriftart? Wie wollen Sie erreichen diesen Effekt?
Probieren Sie es aus, um zu sehen, was ich meine:
http://www.me.com/
- Siehe auch stackoverflow.com/questions/1582534/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe dies in der Vergangenheit mithilfe von jQuery. Messen Sie die Größe von einem Stück text wie diesen:
Damit passen diese zu einem bestimmten Platz, es ist ein wenig komplizierter - Sie müssen trennen die
font-size
Erklärung und Vergrößere es entsprechend. Je nachdem, wie Sie sind, Dinge zu tun, dies könnte am einfachsten sein, wenn Sie brechen die verschiedenen Teile desfont
Erklärung. Ein resize-Funktion könnte so Aussehen (wieder, dies ist offensichtlich jQuery-abhängig):Können Sie dies in Aktion zu sehen hier: http://jsfiddle.net/nrabinowitz/9BFQ8/5/
Prüfung scheint zu zeigen, dass dies ein wenig nervös, zumindest in Google Chrome, da nur full-ganzzahlige Schriftgrößen verwendet werden. Möglicherweise können Sie besser mit einem
em
-basierte font-Deklaration, obwohl das vielleicht ein wenig schwierig - Sie brauchen, um sicherzustellen, dass die1em
Größe für die Breite des Textes tester ist die gleiche wie für den Eingang.Ich ein anderes aus einem Sammelsurium von anderen Antworten. Ich denke, dies stellt die einfachste one-property-change-Lösung.
Ist es wahrscheinlich übermäßig ausführliche oder könnte umgestaltet werden, der für Klarheit in einige Möglichkeiten, Anregungen willkommen!