Klikli: Schriftgröße verändern

Hallo!
Vorab muss ich sagen, dass ich ein blutiger Anfänger bin, was JavaScript betrifft. Also:
Ich habe versucht mittels JavaScript dem User die Möglichkeit zugeben die Schriftgröße schrittweise zu erhöhen. Mein Versuch sieht so aus:
---------------------------------
<html>
<head>
 <title>Schriftgr&ouml;&szlig;e ver&auml;ndern</title>
<script type="text/javascript">
function Gross()  {
a = document.getElementById("content").style.font-size;
b = a + 0.2;
document.getElementById("content").style.font-size = b + "em;";
}
</script>
</head>

<body>
<a href="javascript:Gross()">Mache Groß</a>
<div id="content">
 Dieser Text soll größer werden!
</div>
</body>
</html>
---------------------------------
Was muss ich anders machen, wenn ich Erfolg haben will?
Und bitte bedenkt, dass ich nicht so gut bin in JS.
Vielen Dank, euer Klikli

  1. Hallo Klikli,

    Was muss ich anders machen, wenn ich Erfolg haben will?

    "fontSize" ohne Bindestrich und mit großem "S" schreiben, wenn du sie mit Javascript verändern willst.

    Und bitte bedenkt, dass ich nicht so gut bin in JS.

    http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften

    Gruß Gernot

    1. Hallo nochmal,

      a = document.getElementById("content").style.font-size;

      Ich sehe gerade:

      Selbst wenn du jetzt fontSize ausliest, müsstest du auch erst noch dafür sorgen, dass die Maßangabe "em" aus dem String verschwindet und ggf, dass aus dem String eine Zahl wird, damit du mit ihr rechnen kannst:

      substring()

      Number()

      Gruß Gernot

      1. und nochmal,

        das Einfachste:

        parseFloat()

        Gruß Gernot

        1. Hallo!
          Vielen Dank für dein bemühen!
          Ich habe es jetzt mal so gemacht (umzu überprüfen, ob das mit dem Auslesen wirklich geht, gebe ich es mit alert aus):
          ----------------------------------------------------
          <html>
          <head>
           <title>Schriftgr&ouml;&szlig;e ver&auml;ndern</title>
          <script type="text/javascript">
          function Gross()  {
          a = document.getElementById("content").style.fontSize;
          b = parseFloat(a)
          alert(b)

          }
          </script>
          <style type="text/css">
          div#content{
           font-size: 1 em;
          }
          </style>
          </head>

          <body>
          <a href="javascript:Gross()">Mache Groß</a>
          <div id="content">
           Dieser Text soll gr&ouml;&szlig;er werden!
          </div>
          </body>
          </html>
          ----------------------------------------------------
          Zurückgegeben wird aber nur "NaN". Was mache ich falsch?
          Vielen Dank! euer Klikli

          1. Hallo Lukas,

            <style type="text/css">
            div#content{
            font-size: 1 em;
            }
            </style>

            Zurückgegeben wird aber nur "NaN". Was mache ich falsch?

            Du weist deinem Element die Schriftgröße über eine Klasse zu. Auslesen kannst du sie daher nicht über die Style-Eigenschaft.

            Gib deinem Element mal einen inline-Style bzgl. font-size!

            z.B.

            <div id="content" style="font-size:1em">

            Gruß Gernot

            1. Vielen vielen Dank!
              So funktioniert der Code:
              ------------------------------------------------------------
              <html>
              <head>
               <title>Schriftgr&ouml;&szlig;e ver&auml;ndern</title>
              <script type="text/javascript">
              function Gross()  {
              a = document.getElementById("content").style.fontSize;
              b = parseFloat(a)
              c = b + 1.05;
              document.getElementById("content").style.fontSize = c + "em";

              }
              </script>
              <style type="text/css">
              div#content{
               font-size: 1 em;
              }
              </style>
              </head>

              <body>
              <a href="javascript:Gross()">Mache Groß</a>
              <div id="content" style="font-size:1em">
               Dieser Text soll gr&ouml;&szlig;er werden!
              </div>
              </body>
              </html>
              ----------------------------------------------------------
              Vielen Dank, Klikli

              1. Hi,

                So funktioniert der Code:

                das ist ja erfreulich. Aber ...

                b = parseFloat(a)
                c = b + 1.05;

                den Zwischenschritt mit b kannst du einsparen. Und wolltest du nicht multiplizieren? Also:

                c = parseFloat(a) * 1.05;

                Ciao,
                 Martin

                --
                Computer lösen für uns Probleme, die wir ohne sie gar nicht hätten.
            2. Hi,

              Gib deinem Element mal einen inline-Style bzgl. font-size!
              <div id="content" style="font-size:1em">

              Bevor ich die Stile deswegen als Inline-Styles definiere, würde ich sie eher mit currentStyle bzw. getComputedStyle auslesen.

              Oder, wenn es viele Element sind, ändere ich doch lieber das Stylesheet selbst (und damit die Formatierung aller Elemente, die davon betroffen sind, in einem Rutsch).

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Moin,

    Vorab muss ich sagen, dass ich ein blutiger Anfänger bin, was JavaScript betrifft.

    das ist ja keine Schande, jeder hat mal klein angefangen. :-)

    Ich habe versucht mittels JavaScript dem User die Möglichkeit zugeben die Schriftgröße schrittweise zu erhöhen.

    Vorab muss ich sagen, dass ich das für Unfug halte. Es sei denn, du betrachtest das nur als Übung. Denn für den realen Einsatz auf einer Webseite brauchst du eine Funktion, die die meisten Browser von Haus aus mitbringen, nicht noch einmal nachzubauen.

    a = document.getElementById("content").style.font-size;

    Das bedeutet:
     Suche das Element mit der ID "content", nimm dessen style-Objekt, lies
     daraus die Eigenschaft font, und subtrahiere davon den Wert der Variablen
     size. Speichere das Ergebnis in a.
    Dass das Unsinn ist, siehst du selbst. Der Bindestrich in CSS-Eigenschaften _kann_ so nicht in die Javascript-Bezeichnungen übernommen werden. Aber es gibt eine Regel für die Namensbildung: Der Bindestrich entfällt, dafür wird der darauffolgende Buchstabe groß geschrieben.

    b = a + 0.2;

    Damit's gleichmäßig skaliert, wäre hier eine Multiplikation, z.B. mit 1.05, günstiger. Wenn du 0.2em dazuzählst, wirkt sich das bei kleinen Schriften sehr stark aus, bei sehr großen Schriften kaum noch merklich. Eine Vergrößerung bzw. Verkleinerung um 5% wirkt dagegen subjektiv bei jeder Schriftgröße gleich stark.

    document.getElementById("content").style.font-size = b + "em;";

    Auch hier gilt wieder das oben Gesagte mit dem Bindestrich.

    Aber wie gesagt: Die Schriftgröße mit JS ändern zu wollen, halte ich genauso für Unfug, wie die Absicht, die "Back"-Funktion des Browsers nachzubauen. In der Praxis ist es wahrscheinlicher, dass die Besucher vorzugsweise die Funktionen ihres Browsers verwenden, weil sie die kennen.

    So long,
     Martin

    --
    Mir geht es gut. Ich mag die kleinen Pillen, die sie mir dauernd geben.
    Aber warum bin ich ans Bett gefesselt?
    1. Hi!

      Vorab muss ich sagen, dass ich ein blutiger Anfänger bin, was JavaScript betrifft.

      das ist ja keine Schande, jeder hat mal klein angefangen. :-)

      :-)

      Vorab muss ich sagen, dass ich das für Unfug halte. Es sei denn, du betrachtest das nur als Übung. Denn für den realen Einsatz auf einer Webseite brauchst du eine Funktion, die die meisten Browser von Haus aus mitbringen, nicht noch einmal nachzubauen.

      Ich glaube nicht, dass auch nur die Hälfte der User diese Funktion kennt. Vorallem ältere User kennen diese Funktion nicht. (Glaube ich)

      a = document.getElementById("content").style.font-size;

      Das bedeutet:
      Suche das Element mit der ID "content", nimm dessen style-Objekt, lies
      daraus die Eigenschaft font, und subtrahiere davon den Wert der Variablen
      size. Speichere das Ergebnis in a.
      Dass das Unsinn ist, siehst du selbst.

      Ja, das ist nich so, wie ich es mir vorgestellt habe.

      Damit's gleichmäßig skaliert, wäre hier eine Multiplikation, z.B. mit 1.05, günstiger. Wenn du 0.2em dazuzählst, wirkt sich das bei kleinen Schriften sehr stark aus, bei sehr großen Schriften kaum noch merklich. Eine Vergrößerung bzw. Verkleinerung um 5% wirkt dagegen subjektiv bei jeder Schriftgröße gleich stark.

      Danke für diesen Tip!
      Vielen Dank für deine Antwort!
      Klikli

      1. hi,

        Ich glaube nicht, dass auch nur die Hälfte der User diese Funktion kennt. Vorallem ältere User kennen diese Funktion nicht. (Glaube ich)

        Wenn diese deine vornehmliche "Zielgruppe" darstellen - dann mache die Schrift doch bitte gleich groß "genug".

        Zitat #539

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. Hallo Der Martin!

      document.getElementById("content").style.font-size = b + "em;";

      Auch hier gilt wieder das oben Gesagte mit dem Bindestrich.

      und ein halber Kolon scheint zu viel zu sein:

      • "em;";
             ^

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
      1. Hi Patrick,

        und ein halber Kolon scheint zu viel zu sein:

        • "em;";
               ^

        buärgh, wie unappetitlich!
        Du weißt, dass "Kolon" auch eine Bezeichnung für einen Teil des Dickdarms ist? ;-)

        Schönes Wochenende noch,
         Martin

        --
        Fettflecke werden wieder wie neu, wenn man sie regelmäßig mit etwas Butter einschmiert.
        1. Hallo Der Martin!

          Du weißt, dass "Kolon" auch eine Bezeichnung für einen Teil des Dickdarms ist? ;-)

          Viele im Deutschen vorkommenden Fremdwörter kommen aus meiner Muttersprache als Nicht-Fremdwörter vor ;)

          Aber Du hast recht: Ich hätte so früh vor'm Mittagessen lieber "Halber Siedler" schreiben sollen ;)

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --

          _ - jenseits vom delirium - _
          <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
          1. Hallo,

            Viele im Deutschen vorkommenden Fremdwörter kommen aus meiner Muttersprache als Nicht-Fremdwörter vor ;)

            i woiß. ;-)
            Klar, die romanischen Sprachen (Französisch, Spanisch, Italienisch, etc.) sind in ihrem Wortschatz noch sehr eng mit dem Lateinischen verwandt, wo bekanntlich ein großer Teil der Fremdwörter im Deutschen herkommt. Eine weitere ergiebige Quelle für Fremdwörter ist Griechisch. Das führt dazu, dass man als Deutscher viele Fremdwörter, die man bisher nicht kennt, selbst herleiten kann, wenn man ein paar lateinische und ein paar griechische Wortstämme kennt - die jeweilige Sprache wirklich zu beherrschen ist dazu nicht nötig.

            Ich hätte so früh vor'm Mittagessen ...

            Ach, das hat ja noch zwei Stunden Zeit, ich hab doch eben erst gefrühstückt!

            ... lieber "Halber Siedler" schreiben sollen ;)

            Ups, das war mir fremd, obwohl die Parallele zu "Kolonie" eigentlich auffällig ist. Aber mein Schulfranzösisch ist auch nach über 20 Jahren, in denen ich es nur äußerst selten anwenden musste, ziemlich eingetrocknet.

            Ciao,
             Martin

            --
            Ein guter Lehrer muss seinen Schülern beibringen können,
            eine Frage so zu stellen, dass auch der Lehrer lernen muss,
            um die Frage beantworten zu können.
              (Hesiod, griech. Philosoph, um 700 v.Chr.)
            1. Hallo Der Martin!
                    ´^^^^^^^^^

              Die User-Konfig macht mir immer "Hallo Der" aus Deinem Namen, vielleicht solltest Du neudeutsch, in Anlehnung an DaimlerChrysler, endlich mal zu "DerMartin" übergehen ;)

              Klar, die romanischen Sprachen (Französisch, Spanisch, Italienisch, etc.) sind in ihrem Wortschatz noch sehr eng mit dem Lateinischen verwandt,

              Eben das ist mit der englischen Sprache nicht zu unterschätzen. Englisch zu lernen/studieren mag (hier) am Anfang einfach sein, solange Wörter des täglichen Gebrauchs, die aus dem skandinavisch/germanischen Raum stammen, noch in der Überzahl sind. Geht es ins Abstrakte, dann sind wieder Wörter lateinisch/grieschicher Herkunft gefragt. Und eben diese zweifache Herkunft, auch historisch bedingt, wenn man Englands Geschichte einigermassen vor Augen hat (Römische Besatzung im Süden, Wikinger im Nordosten, Kelten im Südwesten, etc... - im übrigen meine ich Grossbritannien, nicht speziell "England" damit), diese vielen Einflüssen machen die englische Sprache zu einer der Wortschatzreichsten überhaupt. Beispiel: während es hier nur Freiheit gibt, und in Frankreich nur die liberté, gibt es im Englischen sowohl freedom als auch liberty... Beide werden im Deutschen und im Französischen mit "Freiheit" respektive "Liberté" übersetzt - doch ganz das Selbe ist es nicht... Solche Beispiele gibt es sehr viele!

              Aber mein Schulfranzösisch ist auch nach über 20 Jahren,

              Hm, Köln kommt aber auch von "colonia" ;)

              Viele Grüße aus Frankfurt/Main,
              Patrick

              --

              _ - jenseits vom delirium - _
              <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
              1. Hallo Patrick,

                Die User-Konfig macht mir immer "Hallo Der" aus Deinem Namen, ...

                das haben andere auch schon festgestellt!  ;-)

                vielleicht solltest Du neudeutsch, in Anlehnung an DaimlerChrysler, endlich mal zu "DerMartin" übergehen ;)

                No Sir, definitely not!

                Eben das ist mit der englischen Sprache nicht zu unterschätzen [...] machen die englische Sprache zu einer der Wortschatzreichsten überhaupt.

                Ja, und das dürfte _ein_ Grund sein, warum in mehrsprachigen Texten (Bedienungsanleitungen, Bildunterschriften, Warnhinweise) die englische Version fast immer die kürzeste ist, und die französische wegen der komplizierten Grammatik meist die längste.
                Aber im Lauf der Zeit ist mir Englisch so in Fleisch und Blut übergegangen, dass es mir fast so locker und auf jeden Fall ohne Nachdenken über die Lippen geht wie meine eigene Muttersprache. Immerhin bin ich in den USA schon mehrmals für einen Einheimischen gehalten worden.

                Aber mein Schulfranzösisch ist auch nach über 20 Jahren,
                Hm, Köln kommt aber auch von "colonia" ;)

                Et bien, c'est Latin, mais quelle est la connection à la langue Française?
                Und mit Köln konnte ich's noch nie so recht. Die Stadt an sich ist ja okay, aber wenn ich den Kölschen Dialekt höre, und sei es auch nur schwach angedeutet, geht mir irgendwie das Messer in der Tasche auf. Fast jeden deutschen Dialekt kann ich akzeptieren, finde ihn in schwacher Ausprägung sogar irgendwie nett, aber das "Kölsch" kann ich nicht vertragen.

                Schönes (Rest-)Wochenende noch,
                 Martin

                --
                Die letzten Worte der Challenger-Crew:
                Lasst doch mal die Frau ans Steuer!
                1. Hallo Der!

                  ^^^ok, ich lasse es mal so ;)

                  Immerhin bin ich in den USA schon mehrmals für einen Einheimischen gehalten worden.

                  Manche Mitbürger staunen, wenn ich verrate, dass ich aus Frankreich komme. Zumindest diejenigen, die nicht richtig "hören" (ich sage bewußt nicht "zuhören"), denn ein bestimmter Tonfall lässt sich nicht ganz wegkriegen.

                  quelle est la connection à la langue Française?

                  colonia = colonnie = Siedlung
                  colon = Siedler
                  semi-colon = halber Siedler

                  Wo ist da die Unlogik? ;)

                  aber wenn ich den Kölschen Dialekt höre,

                  Ich war in Berlin, in Aachen, Köln, Düsseldorf, ja sogar bei den Weißwürsten da unten. Aber das schlimmste, das mir zu Ohren gekommen ist, ist Pfälzer dialekt. Igitt! Ich glaube, wenn die einzig verbleibende Frau auf der Welt aus Frankenthal wäre, müsste ich ihr den Mund stopfen oder...

                  Viele Grüße aus Frankfurt/Main,
                  Patrick

                  --

                  _ - jenseits vom delirium - _
                  <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
                  1. Hallo Patrick,

                    Ich glaube, wenn die einzig verbleibende Frau auf der Welt aus Frankenthal wäre, müsste ich ihr den Mund stopfen oder...

                    Un mähs do dat och met mir, wenn ich op Kölsch met dir schwade däd, oder mäht dat dann nur dr Määtes?

                    Gruß Gernot

                  2. Einen schönen Sonntagmorgen!

                    Hallo Der!
                    ^^^ok, ich lasse es mal so ;)

                    meinetwegen, ich bin es schon gewöhnt und schmunzle immer wieder darüber. :-)

                    Manche Mitbürger staunen, wenn ich verrate, dass ich aus Frankreich komme. Zumindest diejenigen, die nicht richtig "hören" (ich sage bewußt nicht "zuhören"), denn ein bestimmter Tonfall lässt sich nicht ganz wegkriegen.

                    Ja, das kann ich mir gut vorstellen, gerade das Französische hinterlässt meistens einen charakteristischen Klang. Unsere Firma hat eine Zweigniederlassung in Frankreich, in der Nähe von Mulhouse. Das ist zwar sprachlich gesehen noch Mischgebiet, und unsere Kollegen von dort können alle viel besser Deutsch als die meisten von uns Französisch. Aber wie du schon sagst: Ein leichter, aber klar erkennbarer Akzent bleibt eben doch.

                    Als neulich wieder zwei von denen für einen Tag bei uns waren, habe ich mitbekommen, wie einer von denen mit seinen Kollegen zuhause telefonierte. Das hat mich dann ganz klar überzeugt, dass ich wohl doch kein Französisch kann. Außer einem gelegentlichen "oui" und "alors" hab ich kaum ein Wort verstanden. ;-)

                    Aber ein leichter Hauch des Akzents aus der eigenen Muttersprache ist bei den meisten herauszuhören, wenn sie eine Fremdsprache sprechen.

                    ---
                    Polnisches Au-Pair-Mädchen in England wird von ihrer Gastfamilie gefragt: "So you want to polish up your English?" - Sie antwortet mit stark osteuropäischem Akzent: "I think my English is Polish enough."
                    ---

                    aber wenn ich den Kölschen Dialekt höre,
                    Ich war in Berlin, in Aachen, Köln, Düsseldorf, ja sogar bei den Weißwürsten da unten.

                    *fg*

                    Aber das schlimmste, das mir zu Ohren gekommen ist, ist Pfälzer dialekt. Igitt!

                    Ach du Sch***! Wie konnte ich den in meiner Betrachtung nur vergessen! Ja, ich stimme dir zu, das ist was Fürchterliches.

                    Ich glaube, wenn die einzig verbleibende Frau auf der Welt aus Frankenthal wäre, müsste ich ihr den Mund stopfen oder...

                    ... ins Kloster gehen?  ;-)
                    Oder in Abwandlung eines bekannten Sprichworts: Lieber eine Stumme im Bett als eine Taube auf dem Dach?

                    Schönen Sonntag noch,
                     Martin

                    --
                    Die meisten Menschen werden früher oder später durch Computer ersetzt.
                    Für manche würde aber auch schon ein einfacher Taschenrechner genügen.
                    1. Hallo Der Martin!

                      ^^^^

                      meinetwegen, ich bin es schon gewöhnt und schmunzle immer wieder darüber. :-)

                      Gut, wenn ich Zeit habe, ergänze ich die Zeile ;)

                      dass ich wohl doch kein Französisch kann.

                      Du bist nicht der Einzige. Sogar die Übersetzer fürs Fernsehen können keins. Zwei Beispiele:

                      Jean-Luc Godard hatte mal einen Film über Maria (ja, die berühmte Jungfrau) gedreht, der - man kennt ja Godard - ziemlich freizügig war in der Interpretation der Geschichte um die Geburt Jesu. Treue Katholiken gingen sofort auf die Barrikaden (weswegen man eigentlich Ruhe bewahren sollte, wenn andere wegen Karikaturen das Gleiche tun, aber das ist eine andere Geschichte) und stürmten die Kinos und versuchten, die Vorführungen zu verhindern.

                      Das tolle an diese Interviews ist ja, dass man im Hintergrund die Originalsprache des Interviewten hört, die deutsche Übersetzung wird ja etwas lauter "reingemixt".

                      So nun O-Ton Franzose:
                      Ils sont montés sur la scène et ont essayé de voiler l'écran.
                      Übersetzung:
                      Die Leute sind auf die Bühne gegangen und haben versucht die Leinwand zu _klauen_ ... :)

                      Im anderen Fall wurde ein junger Mann gefragt, was er in seiner Freizeit tut. O-Ton Franzose:

                      J'aime bien regarder des DVD [Anmerkung: DVD wird im frz. dewede und nicht devaude ausgesprochen]
                      Übersetzung:
                      Ich schau mir gerne _Dewede_ an... :)

                      Ob der Sender Anrufe ratloser Zuschauer erhalten hat, die wissen wollten, was dieses geheimnisvolle "Dewede" ist?


                      "I think my English is Polish enough."

                      Gut!

                      ... ins Kloster gehen?  ;-)

                      Mein ganzes Geld in Ohropax investieren?

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --

                      _ - jenseits vom delirium - _
                      <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>