kostenloser Webspace werbefrei: lima-city


Frage zu Javascript und CSS

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    h****d

    Hallo Leute,, habe ein kleines Problem und wäre über jede Hilfe dankbar.

    Ich habe einen LINK, womit ich alle <p> Elemente auf einer Website mit einem Klick vergrößern will. Funktioniert soweit wunderbar.
    Nun folgendes: Ich hab ein + Zeichen (soll ne Barrierefreie Seite werden, wo die Schrift vergrößert werden kann)

    Mit Javascript geht dsa, ohne dsa die Page reloaded werden muss. Bei Klick 1 vergrößerung um 125 %, bei Klick 2 auf 150 %, und da mein Problem. Der 2te Klick wird einfach nicht mehr beachtet.

    <script type=\"text/javascript\">
    function setCSSbig () {
      for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++) {
        document.getElementsByTagName(\"p\")[i].style.fontSize = \"125%\";
        var big1 = true;
        return;
      }
    }
    if (big1 == true)
    {
    function setCSSbig () {
      for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++) {
        document.getElementsByTagName(\"p\")[i].style.fontSize = \"150%\";
        return;
      }
    }
    }
    function setCSSnormal () {
      for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++) {
        document.getElementsByTagName(\"p\")[i].style.fontSize = \"100%\";
      }
    }
    </script>


    Und dann mit <a href=\"javascript:setCSSbig();\">Vergrößern</a>

    Ich hab versucht es so zu lösen:

    Wenn Schritt 1 erfolgt ist, big1 auf true setzen. Wenn ein 2tes mal geklickt wird, soll geprüft werden ob big1 = true ist, wenn ja, wird Stufe 2 bbenutzt. Klappt aber leider nicht. Kann mir jmd helfen? Ich hoffe es war nicht all zu schlecht von mir formuliert!


    Beitrag geändert: 18.2.2008 15:27:34 von hirbod
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du definierst 2x die Funktion setCSSbig, 1x VOR dme True und eunmal danach.
    1. Ist das doppelte definieren Müll
    2. Veriwrrst du jeden und alles damit, denn der PC weis nicht was er machen soll, soll er nun die Funktion VOR oder NACH der if aufrufen? Der PC dnekt anders als du!
    3 Hieri st die richtige: (ungetestet, 50% iummernoch codemüll)

    function setCSSbig()
     {
      if (big1 == true)
       {
        for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++)
         {
          document.getElementsByTagName(\"p\")[i].style.fontSize = \"150%\";
          return;
         }
       }
      else
       {
        for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++)
         {
          document.getElementsByTagName(\"p\")[i].style.fontSize = \"125%\";
          var big1 = true;
          return;
         }
       }
     }
    function setCSSnormal ()
     {
      for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++)
       {
        document.getElementsByTagName(\"p\")[i].style.fontSize = \"100%\";
       }
     }



    Beitrag geändert: 18.2.2008 15:41:27 von mergener
  4. Autor dieses Themas

    h****d

    Funzt jetzt gar nicht mehr...
  5. Die Variablen sollten global, also außerhalb der Funktionsdeklaration deklariert und definiert werde. Wie soll sonst die eine Funktion wissen, was die Variable der anderen beinhaltet? Außerdem solltest du die If-Abfrage in die Deklaration von setCSSbig() machen und brauchst sie somit nicht doppelt aufschreiben. Also ungefär so wie bei mergener nur, dass du eine globale Variable brauchst.



    var big1 = false;
    function setCSSbig() {
      if (big1 == true) {
        for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++) {
          document.getElementsByTagName(\"p\")[i].style.fontSize = \"150%\";
          return;
        }
      } 
      else {
        for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++) {
          document.getElementsByTagName(\"p\")[i].style.fontSize = \"125%\";
          var big1 = true;
          return;
        }
      }
    }
    function setCSSnormal () {
      for (var i = 0; i < document.getElementsByTagName(\"p\").length; i++) {
        document.getElementsByTagName(\\\'p\\\')[i].style.fontSize = \\\'100%\\\';
      }
    }

  6. Stimmt da war der fehler :D
    hasst du an dem script wlehces ich gepostet noch sonstwas verändert ausser der variable??? Sehe nähmlich nix.
    Will iwssen ob mien JS noch auf Trab ist^^
  7. Autor dieses Themas

    h****d

    Thx i-spacke, wie du es gemacht, funktioniert es, danke dafür.. Habe mittlerweile aber dennoch anders gelöst, hatte da nen tolles Javascript im Internet gefunden, welches lauffähig war.

    Dennoch THX :)
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!