Wie geht das? siehe me.com
basti123
- css
Hi!
Wenn man auf me.com geht und dort in das Feld Benutzername viel Text einträgt, verkleinert sich automatisch die Schriftgröße.
Wie machen die das? Wenn ich mir Firebug die Eigenschaften des Feldes ansehe, sehe ich zwar, wie die Schriftart kleiner wird, aber ich kann nicht erkennen, dank welcher Programmierung das passiert.
Würde ich gern auch mal für eigene Sachen einsetzen. Gefällt mir super!
@@basti123:
nuqneH
Wenn ich mir Firebug die Eigenschaften des Feldes ansehe, sehe ich zwar, wie die Schriftart kleiner wird, aber ich kann nicht erkennen, dank welcher Programmierung das passiert.
Per JavaScript. javascript-packed.js findest du auch im Firebug. Das Eingabefeld hat @id und @name "username". Wenn du danach im Script suchst, findest du die Methode L.form.username.updateLayoutToValue
.
Qapla'
Per JavaScript. javascript-packed.js findest du auch im Firebug. Das Eingabefeld hat @id und @name "username". Wenn du danach im Script suchst, findest du die Methode
L.form.username.updateLayoutToValue
.
Oh cool. Vielen Dank an alle!!!
Hallo,
ich denke mit JavaScript und einem Methodenaufruf bei keypress auf dem entsprechenden Formularfeld wäre ein entsprechendes Ergebnis zu erzielen.
Die gerufene Methode zählt die bereits getippten Zeichen und verkleinert/vergrößert ab bestimmten Grenzwerten die Schriftart des Feldes.
Grüße,
MrSchmidtdt
@@MrSchmidtdtdt:
nuqneH
Methodenaufruf bei keypress
Das mag sein. Bei drag and drop wird sie jedenfalls nicht aufgerufen.
Die gerufene Methode zählt die bereits getippten Zeichen
Nein, das tut sie gewiss nicht. Das wäre ja auch sinnlos, weil die Anzahl der Zeichen eines Strings nichts über dessen Breite aussagt.
Qapla'
Das mag sein. Bei drag and drop wird sie jedenfalls nicht aufgerufen.
Bei mir schon - Magie!!
Gruß
magischer
T-Rex
@@T-Rex:
nuqneH
Das mag sein. Bei drag and drop wird sie jedenfalls nicht aufgerufen.
Bei mir schon - Magie!!
Öhm, bei mir jetzt auch – Magie!!
Nochmal im Script nach "updateLayoutToValue" gesucht:
L.form.username.input.onkeydown=function(h){…;this.owner.updateLayoutToValue();…}
L.form.username.input.onkeyup=function(h){…;this.owner.updateLayoutToValue();…}
L.form.username.input.update=function(h){…;this.owner.updateLayoutToValue();…}
und noch zwei andere Aufrufe, bei denen es mir gerade zu mühsam ist nachzugehen, wie sie getriggert werden.
Qapla'
Das mag sein. Bei drag and drop wird sie jedenfalls nicht aufgerufen.
Vielleicht aber auch in einem unabhängigen Intervall?
Nein, das tut sie gewiss nicht. Das wäre ja auch sinnlos, weil die Anzahl der Zeichen eines Strings nichts über dessen Breite aussagt.
Bei Monospace-Fonts schon!
Aber du hast an dieser Stelle natürlichrecht.. man könnte jedoch einen unsichtbaren Container verwenden und dessen Breite entsprechend auslesen
man könnte jedoch einen unsichtbaren Container verwenden und dessen Breite entsprechend auslesen
Was me.com auch tut, siehe die Funktion $.getContentMetrics, die wird in Zeile 485 des HTML-Codes definiert.
Mathias
@@basti123:
nuqneH
Wenn man auf me.com geht
„Ihr Browser wird nicht unterstützt.“ (Opera)
Apple stellt sich selbst ein Armutszeugnis aus?
Qapla'
Wenn man auf me.com geht
„Ihr Browser wird nicht unterstützt.“ (Opera)
Apple stellt sich selbst ein Armutszeugnis aus?
Das machen die doch ständig :)
Aber fairerweise muss man sagen, dass me.com tot ist - das wird doch durch die iCloud abgelöst, die momentan bei Amazon und Microsoft läuft :)