basti123: Wie geht das? siehe me.com

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!

  1. @@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'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. 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!!!

  2. 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

    1. @@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'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Das mag sein. Bei drag and drop wird sie jedenfalls nicht aufgerufen.

        Bei mir schon - Magie!!

        Gruß
        magischer
        T-Rex

        1. @@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'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
      2. 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

        1. 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

  3. @@basti123:

    nuqneH

    Wenn man auf me.com geht

    „Ihr Browser wird nicht unterstützt.“ (Opera)

    Apple stellt sich selbst ein Armutszeugnis aus?

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. 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 :)