Js. Style.height

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Js. Style.height

    Hallo.

    Ich habe 2 <div> Layer in einer Tabelle.
    Diese sind zum Anfang 0px Hoch.

    Nun will ich wenn ich über ein bestimmtes Feld fahre diese hochfahren lassen.

    Klappt auch.

    Nur Klappt das mit dem OnMouseOut nicht. er macht es Trotzdem "Groß"

    siehe Mecklenburger Goldschmiede © 2009

    In der Mitte unten bei Flyer.

    HTML-Code:
    <td id='zeiger_stavenhagen' 
    style='text-align:left;width:50%;' 
    onmouseover='in_stavenhagen();' 
    onmouseout='out_stavenhagen();'><small>Text</small></td>
    [JS-TEIL]
    Code:
    function hoch_stavenhagen()
    {
      var wert;
      wert = document.getElementById ('flyer_stavenhagen').style.height;
      wert = wert + 1;
      wert = wert.substring(0,wert.length-3);
      if(wert >= 0 && wert <= 398)
      {
        wert++;
        document.getElementById('flyer_stavenhagen').style.height = wert + "px";
      }
    }
    
    function in_stavenhagen()
    {
      document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#95ffff";
      document.getElementById('flyer_stavenhagen').style.height = 0 + "px";
      window.setInterval("hoch_stavenhagen()", 50);
    }
    
    function out_stavenhagen()
    {
      window.clearInterval();
      document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#FFFFFF";
      document.getElementById('flyer_waren').style.height = 0 + "px";
      document.getElementById('flyer_stavenhagen').style.height = 0 + "px";
    }
    Einer ne Idee
    Zuletzt geändert von bofan; 10.12.2009, 23:43.
    Beachte: Dumm ist, wer Dummes tut.

  • #2
    Hallo,

    auf den ersten Blick vermute ich mal, dass er sich an window.clearInterval() verschluckt und deshalb den Rest nicht mehr ausführt. Das erwartet einen Parameter, nämlich das Handle, das du von setInterval() zurückbekommst. Einfach in einer globalen Variablen speichern.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      PHP-Code:
      function in_stavenhagen()
      {
        
      bla window.setInterval("hoch_stavenhagen()"50);
      }
      function 
      out_stavenhagen()
      {
        
      window.clearInterval(bla);

      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Also der

        Code sieht nun so aus:

        Code:
        function hoch_stavenhagen()
        {
          var wert;
          wert = document.getElementById ('flyer_stavenhagen').style.height;
          wert = wert.substring(0,wert.length-3);
          if(wert >= 0 && wert <= 398)
          {
            wert++;
            document.getElementById('flyer_stavenhagen').style.height = wert + "px";
          }
        }
        
        function in_stavenhagen()
        {
          aktiv_s = window.setInterval("hoch_stavenhagen()", 50);
          document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#95ffff";
          document.getElementById('flyer_stavenhagen').style.height = 0 + "px";
        }
        
        function out_stavenhagen()
        {
          window.clearInterval(aktiv_s);
          document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#FFFFFF";
          document.getElementById('flyer_waren').style.height = 0 + "px";
          document.getElementById('flyer_stavenhagen').style.height = 0 + "px";
        }
        Es kommt beim Firebug zwar keine Meldung, aber es geht nun nicht mehr größer das div...

        Scheinbar führt er den SetInterval nicht aus...

        siehe

        Mecklenburger Goldschmiede © 2009
        Beachte: Dumm ist, wer Dummes tut.

        Kommentar


        • #5
          Edit: probier mal, die setInterval-Zeile wieder ganz runter zu schieben.
          Zuletzt geändert von AmicaNoctis; 11.12.2009, 16:11.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Okay. Ein Designfehler.?

            Bestimmt mit de Namen habe ich was vertauscht. vllt. einen winzigen Tipp.


            @ AmicaNoctis

            Du bist echt
            Beachte: Dumm ist, wer Dummes tut.

            Kommentar


            • #7
              Ne sorry, hatte selbst einen Denkfehler

              Hab den Beitrag schon editiert. Du könntest aber mal noch sagen, ob er es nun gar nicht mehr macht oder nur noch einmal und dann nicht mehr.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                So?
                Code:
                function in_stavenhagen()
                {
                  document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#95ffff";
                  document.getElementById('flyer_stavenhagen').style.height = 0 + "px";
                  aktiv_s = window.setInterval("hoch_stavenhagen()", 50);
                }
                Bringt keine Änderung.
                Beachte: Dumm ist, wer Dummes tut.

                Kommentar


                • #9
                  Ich weiß, woran es liegt

                  Code:
                  wert = "1px"; // z. B.
                  wert = wert.substring(0,wert.length-3);
                  // wert ist jetzt ""
                  wert++;
                  // wert ist wieder 1
                  Darum kommt er über ein Pixel nicht hinaus. Besser, du arbeitest beim Abfragen (nicht beim Setzen!) gleich mit clientHeight statt style.height, da bekommst du keinen String sondern direkt einen Integer.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    PHP-Code:
                    wert parseInt(document.getElementById ('flyer_stavenhagen').style.height); 
                    Z.B.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Okay. es geht nun.

                      der Code

                      Code:
                      function hoch_stavenhagen()
                      {
                        var wert;
                        wert = parseInt(document.getElementById ('flyer_stavenhagen').style.height);
                        if(wert >= 0 && wert <= 398)
                        {
                          wert = wert + 2;
                          document.getElementById('flyer_stavenhagen').style.height = wert + "px";
                        }
                      }
                      
                      function in_stavenhagen()
                      {
                        document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#95ffff";
                        document.getElementById('flyer_waren').style.height = 0 + "px";
                        aktiv_s = window.setInterval("hoch_stavenhagen()", 10);
                      }
                      
                      function out_stavenhagen()
                      {
                        window.clearInterval(aktiv_s);
                        document.getElementById('zeiger_stavenhagen').style.backgroundColor = "#FFFFFF";
                        document.getElementById('flyer_waren').style.height = 0 + "px";
                        document.getElementById('flyer_stavenhagen').style.height = 0 + "px";
                      }

                      DANKE EUCH ZWEI!!! SUPER!!!
                      Beachte: Dumm ist, wer Dummes tut.

                      Kommentar


                      • #12
                        Zitat von Kropff Beitrag anzeigen
                        Code:
                        wert = parseInt(document.getElementById ('flyer_stavenhagen').style.height);
                        @Kropff: Bad-Style-Alert: Erstens ist das kein PHP-Code und zweitens sollte man trotzdem (client|offset|scroll)(Height|Width) benutzen, statt sich darauf zu verlassen, dass style.height existiert, was a priori nämlich nie der Fall ist, sondern nur, wenn man es per JS gesetzt hat.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Zitat von AmicaNoctis Beitrag anzeigen
                          @Kropff: Bad-Style-Alert: Erstens ist das kein PHP-Code und zweitens sollte man trotzdem (client|offset|scroll)(Height|Width) benutzen, statt sich darauf zu verlassen, dass style.height existiert, was a priori nämlich nie der Fall ist, sondern nur, wenn man es per JS gesetzt hat.

                          Also doch lieber

                          Code:
                          wert = parseInt(document.getElementById ('flyer_stavenhagen').clientheight);
                          ?
                          Zuletzt geändert von bofan; 11.12.2009, 17:25.
                          Beachte: Dumm ist, wer Dummes tut.

                          Kommentar


                          • #14
                            Zitat von bofan Beitrag anzeigen
                            Also doch lieber

                            Code:
                            wert = parseInt(document.getElementById ('flyer_stavenhagen').clientheight;
                            ?
                            http://www.php-resource.de/forum/htm...tml#post631215
                            Lesen + verstehen = unnötige Rückfragen sparen.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Zitat von AmicaNoctis Beitrag anzeigen
                              @Kropff: Bad-Style-Alert: Erstens ist das kein PHP-Code
                              Ja und, dafür sieht er schöner aus. Ich mach das schon seit Jahren so.
                              Zitat von AmicaNoctis Beitrag anzeigen
                              und zweitens sollte man trotzdem (client|offset|scroll)(Height|Width) benutzen, statt sich darauf zu verlassen, dass style.height existiert,
                              Agree.
                              Zitat von AmicaNoctis Beitrag anzeigen
                              was a priori nämlich nie der Fall ist, sondern nur, wenn man es per JS gesetzt hat.
                              Oder per style-Attribut! Und das hat er ja gemacht.

                              Peter

                              EDIT:
                              Sollte man den Button nicht besser PHP-JavaScript-HTML-Code nennen. Denn das klappt ja ganz gut, und nur in Schwarz sieht das auch nicht so prickelnd aus.
                              Zuletzt geändert von Kropff; 11.12.2009, 17:31.
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X