Fredo: bewegen

Kann mir einer sagen wie ich mit einer Funktion ein BIld bewegen kann?

Bei SELF-HTML steht ja nichts.
move.To oder move.By sind ja nur für Fenster und Koordinatenangaben reichen ja nicht wie z.B. :
document.getElementById("image").pageY = i;

Danke schonmal
MfG Fredo

  1. hi,

    Kann mir einer sagen wie ich mit einer Funktion ein BIld bewegen kann?

    In dem du die CSS-Eigenschaften, die für seine Positionierung verantwortlich sind, dynamisch per Javascript änderst (bspw. über das style-Objekt).

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo Fredo,

    schau Dir mal http://de.selfhtml.org/javascript/objekte/style.htm an. Du kannst z.B. top und left setzen. Aber die Einheiten nicht vergessen, also XXX.style.top="42px". Evtl. musst Du das Bild noch absolut positionieren.

    Gruß, Jürgen

    1. Was ist denn dann hier falsch:
      <script type="text/javascript">
      var a = 0;
      var b = 0;
      var i = 1;
      function down() {

      alert(a + b); /*nur zum überprüfen*/

      var a++;
      var b++;

      alert(a + b); /*nur zum überprüfen*/

      document.getElementById("layer").style.left = 'a' + "px";
      document.getElementById("layer").style.left = 'b' + "px";

      i++;

      if (i >= 200) {
      window.clearInterval(moving);
      }

      var moving = window.setInterval("down()", 10);
      }
      </script>

      }

      1. Was ist denn dann hier falsch:

        var a++;
        var b++;

        document.getElementById("layer").style.left = 'a' + "px";
        document.getElementById("layer").style.left = 'b' + "px";

        Die Anführungszeichen ---------------------------^-^
        a und b sind doch Variablen ....

        Gruß, Sammy

        1. Das muss vorher schon was falsch sein.. ich glaub der führt die function gar nicht erst aus.. jedenfalls werden die beiden alert nicht angezeigt :-(
          Ich geb euch mal den gesamten Quelltext:
          <html>
          <head><title>Test</title>

          <style type="text/css">
          img { position:absolute; }
          </style>
          <script type="text/javascript">
          var a = 0;
          var b = 0;
          var i = 1;
          function down() {

          alert(a + b); /*nur zum überprüfen (wird shcon nicht ausgeführt!?)*/

          var a++;
          var b++;

          alert(a + b); /*nur zum überprüfen*/

          document.getElementById("layer").style.left = a + "px";
          document.getElementById("layer").style.left = b + "px";

          i++;

          if (i >= 200) {
          window.clearInterval(moving);
          }

          var moving = window.setInterval("down()", 10);

          }

          </script>
          </head>
          <body bgcolor="blue" onload="down()">

          <img src="sonne.bmp">

          </body></html>

          Danke schonmal MfG Fredo

          1. Hallo!

            Das muss vorher schon was falsch sein..

            In solchen Fällen hilft dir die JavaScript-Konsole deines Vertrauens.

            document.getElementById("layer").style.left = a + "px";

            Du hast kein Element mit der ID "layer".

            document.getElementById("layer").style.left = b + "px";

            Warum 2 mal left?

            var moving = window.setInterval("down()", 10);

            Hier muss das "var" raus; das sollte eine Globalvariable sein

            Schau mal in deiner JavaScript-Konsole nach, was da steht und gebe einem Element die ID "layer". Im Firefox findest du die JavaScript-Konsole unter "Extras" -> "Fehler-Konsole". Dort steht, was falsch ist.

            ciao, ww

            --
            sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
            1. Du hast kein Element mit der ID "layer".

              HAb ich auch gerade gesehen^^

              Warum 2 mal left?

              das zweite sollte top sein

              aber es geht immer noch net, wie gesagt a und b sind NaN?!

              1. Hab es jetzt so gemacht:
                <script type="text/javascript">
                function runter(a, b, i) {

                alert( b );
                alert( a ); /*nur zum überprüfen*/

                var a = a + 1;
                var b = b + 1;

                alert(a); /*nur zum überprüfen*/
                alert(b);

                document.getElementsByTagName("img").style.left = a + "px"; document.getElementsByTagNames("img").style.top = b + "px";

                i++;

                if (i >= 2000) {
                window.clearInterval(moving);
                }
                moving = window.setInterval("runter()", 10);

                }

                </script>

                jetzt stimmen die werte von a,b und i aber
                document.getElementsByTagName("img").style.left = a + "px"; has no properties.. wieso??

                MfG Fredo

          2. Hallo!

            alert(a + b); /*nur zum überprüfen (wird shcon nicht ausgeführt!?)*/

            Schmeiße die alerts wieder raus. Wenn die Schleife anfängt zu durchlaufen, dann wirst du damit Probleme bekommen

            var a++;
            var b++;

            Hier das "var" wegmachen

            alert(a + b); /*nur zum überprüfen*/

            s.o.

            document.getElementById("layer").style.left = a + "px";
            document.getElementById("layer").style.left = b + "px";

            Das eine "left" in "top" umwandeln

            Zusammen mit meinem anderen Posting wird es funktionieren.

            ciao, ww

            --
            sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
            1. Hab ich gemacht:
              <script type="text/javascript">
              function runter(a, b, i) {

              a = a + 1;
              b = b + 1;

              document.getElementsByTagName("img").style.left = a + "px";
              document.getElementsByTagNames("img").style.top = b + "px";

              i++;

              if (i >= 2000) {
              window.clearInterval(moving);
              }
              moving = window.setInterval("runter(a,b,i)", 10);

              }

              </script>

              klappt trotzdem nicht! warum?

              1. Sorry war der falsche script:

                <script type="text/javascript">

                var a = 0;
                var b = 0;
                var i = 1;
                function down() {
                a++;
                b++;

                document.getElementById("layer").style.left = a + "px";
                document.getElementById("layer").style.top = b + "px";

                i++;

                if (i >= 200) {
                window.clearInterval(moving);
                }

                var moving = window.setInterval("down()", 10);

                }

                </script>

                klappt trotzdem nicht! warum?

                1. Hallo!

                  klappt trotzdem nicht! warum?

                  Weil du nicht das gemacht hast, was ich dir gesagt habe.

                  var moving = window.setInterval("down()", 10);

                  Schmeisse hier das "var" raus. Und poste das nächste mal, ob und welche Fehlermeldungen es in deiner JavaScript-Konsole gibt.

                  ciao, ww

                  --
                  sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
                  1. geht immernoch nicht

                    bin am verzweifeln....

                    1. Hallo!

                      geht immernoch nicht

                      bin am verzweifeln....

                      Ich auch. Wegen Dir!

                      Poste deinen *kompletten* Quelltext. Dazu die Fehlermeldungen der JavaScript-Konsole.

                      ciao, ww

                      --
                      sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
                      1. Quelltext:
                        <html>
                        <head><title>Test</title>
                        <style type="text/css">
                        img { position:absolute; }
                        </style>
                        <script type="text/javascript">
                        var a = 0;
                        var b = 0;
                        var i = 1;
                        function down() {
                        a++;
                        b++;

                        document.getElementById("layer").style.left = a + "px";
                        document.getElementById("layer").style.top = b + "px";

                        i++;

                        if (i >= 200) {
                        window.clearInterval(moving);
                        }

                        moving = window.setInterval("down()", 10);

                        }

                        </script>
                        </head>
                        <body bgcolor="blue" onload="runter()">

                        <img src="sonne.bmp">

                        </body></html>

                        Fehlermeldung:

                        Fehler: document.getElementsByTagName("img").style has no properties
                        Zeile: 14

                        1. Quelltext:
                          <html>
                          <head><title>Test</title>
                          <style type="text/css">
                          img { position:absolute; }

                          </style>
                          <script type="text/javascript">
                          var a = 0;
                          var b = 0;
                          var i = 1;
                          function down() {
                          a++;
                          b++;

                          document.getElementsByTagName("img").style.left = a + "px";
                          document.getElementsByTagName("img").style.top = b + "px";

                          i++;

                          if (i >= 200) {
                          window.clearInterval(moving);
                          }

                          moving = window.setInterval("down()", 10);

                          }

                          </script>

                          </head>
                          <body bgcolor="blue" onload="runter()">

                          <img src="sonne.bmp">

                          </body></html>

                          Fehlermeldung:

                          Fehler: document.getElementsByTagName("img").style has no        properties
                          Zeile: 14

                          so natürlich

                          1. Quelltext:

                            </style>
                            <script type="text/javascript">
                            var a = 0;
                            var b = 0;
                            var i = 1;
                            function down() {
                            a++;
                            b++;

                            document.getElementsByTagName("img").style.left = a + "px";
                            document.getElementsByTagName("img").style.top = b + "px";

                            i++;

                            if (i >= 200) {
                            window.clearInterval(moving);
                            }

                            moving = window.setInterval("down()", 10);

                            }

                            </script>

                            Fehlermeldung:

                            Fehler: document.getElementsByTagName("img").style has no        properties
                            Zeile: 14

                            so natürlich

                            1. Habs hingekriegt^^

                              Danke für die Geduld Wucher Wichtel!!

                              MfG Fredo

                              1. Hallo!

                                Danke für die Geduld Wucher Wichtel!!

                                Schon ok :-) Noch ein Tipp: Löse es mit document.getElementById(). Wenn du mehrere Bilder auf einer Seite hast, bekommst du mit deinem Script Probleme.

                                ciao, ww

                                --
                                sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
                                1. Hab ich auch gemacht^^

                                  Danke trotzdem

        2. ICh idiot hat sich erledigt danke

        3. Ich hatte getElementByID stehen lassen obwohl ich die "id" weggemacht habe. habe also auf getElementByTagName umgestellt geht aber trotzdem net?? och krieg immer gesagt a und b wären NaN warum??

          MfG Fredo