uwe_17: Bild bewegen

Hallo, ich möchte gern ein Bild <img> über den Bildschirm bewegen. habe nur keinen Plan wie. Das heißt, ich muß ja nur eine coordinate in einer schleife solange Variable größer null runterlaufen lassen.
HTML
________________
<div class="link" style="position:absolute; left:350px; top:100px;">
<a class="link" border="0" href="" title="Fotogalerie">
  <img src="doktorfisch.gif" width="30px" height="50px">
   <br><center>Fotos</center>
</a>

Javascript.
_____________

function move_v(x,y)
{
for (x>0)
{
  x = x - 1;
}

}

aber wie mache ich das jetzt ganz genau? ich möchte, das das Bild von links nach rechts läuft.

Danke im voraus

Uwe Pregla

  1. hallo,

    Hallo, ich möchte gern ein Bild <img> über den Bildschirm bewegen. habe nur keinen Plan wie.
    function move_v(x,y) {
    for (x>0) {
      x = x - 1;
    }
    }

    Nett gedacht, aber so einfach ist das nicht. Wie es mit einer kreisförmigen Bewegung geht, kannst du dir auf meiner Seite anschauen, Script steht im Quelltext. Du brauchst nur den Parameter für die Bewegung nach oben zu streichen, schon geht es bloß noch horizontal.

    Grüße aus Berlin

    Christoph S.

    1. Nett gedacht, aber so einfach ist das nicht. Wie es mit einer kreisförmigen Bewegung geht, kannst du dir auf meiner Seite anschauen, Script steht im Quelltext. Du brauchst nur den Parameter für die Bewegung nach oben zu streichen, schon geht es bloß noch horizontal.

      Na, das ist aber nicht auf dem Niveau von was wir hier versuchen zu vermittlen.

      function positionieren(obj_name, links, oben){
          obj_ref="document.getElementById";
          eval(obj_ref+'("'+obj_name+'").style.top = oben');
          eval(obj_ref+'("'+obj_name+'").style.left = links');
      }

      eval ist hier völlig überflüssig und macht das ganze unnötig langsam (neben dem doppelten Aufruf von getElementById - auch eine langsame Funktion), außerdem muss bei CSS Größen und Positionsangaben eine Einheit angegeben werden auch in JS.

      Also besser so:

      function positionieren(obj_id, links, oben){
      var obj_ref= document.getElementById( obj_id);
      obj_ref.style.top = oben +'px';
      obj_ref.style.left = links +'px';
      }

      Optimieren liesse sich das ganze noch, in dem man die obj_ref einmal holt und global macht.

      Struppi.

      1. hallo Struppi,

        Na, das ist aber nicht auf dem Niveau von was wir hier versuchen zu vermittlen.

        Oh, erwischt ;-)

        function positionieren(obj_name, links, oben){
            obj_ref="document.getElementById";
            eval(obj_ref+'("'+obj_name+'").style.top = oben');
            eval(obj_ref+'("'+obj_name+'").style.left = links');
        }

        eval ist hier völlig überflüssig

        Jaein. Ich darf aber kurz sagen, weshalb das noch da steht: ursprünglich hatte ich da mal drei "Objekte" rumfliegen, das ganze Ding stammt (übrigens wie das in https://forum.selfhtml.org/?t=108744&m=677932) auch noch aus meinen "Anfangsjahren" so um 1999 herum, als "eval" noch nicht so sehr kritisch betrachtet wurde. Aber im Prinzip hast du natürlich völlig recht.

        Also besser so:
        function positionieren(obj_id, links, oben){
        var obj_ref= document.getElementById( obj_id);
        obj_ref.style.top = oben +'px';
        obj_ref.style.left = links +'px';
        }
        Optimieren liesse sich das ganze noch, in dem man die obj_ref einmal holt und global macht.

        Wenn schon, dann würde ich bei einer "Revision" versuchen, als Maßeinheit möglichst durchgängig "em" einzusetzen.

        Grüße aus Berlin

        Christoph S.

        1. eval ist hier völlig überflüssig

          Jaein. Ich darf aber kurz sagen, weshalb das noch da steht: ursprünglich hatte ich da mal drei "Objekte" rumfliegen, das ganze Ding stammt (übrigens wie das in https://forum.selfhtml.org/?t=108744&m=677932) auch noch aus meinen "Anfangsjahren" so um 1999 herum, als "eval" noch nicht so sehr kritisch betrachtet wurde. Aber im Prinzip hast du natürlich völlig recht.

          Gerade um 1999 herum war eval noch richtig kritisch, da NS 4 damit zum Absturz neigte.
          Du hast 1999 nur für DOM Browser programmiert? Extrem fortschrittlich.

          Wenn schon, dann würde ich bei einer "Revision" versuchen, als Maßeinheit möglichst durchgängig "em" einzusetzen.

          Naja, was beim positionieren mit JS nicht unbedingt Sinn macht. Da du die Einheiten vom Browser auchn nur als Pixel zurückbekommst.

          Struppi.

          1. hallo Struppi,

            Du hast 1999 nur für DOM Browser programmiert? Extrem fortschrittlich.

            Danke für die Blumen. Nee, ich hatte da noch "document.layers" usw. drin, das ist im Lauf der Zeit rausgeflogen, aber den Rest, also grade die von dir jetzt angemerkte Funktion, habe ich seitdem nicht mehr angefaßt. Wie es ganz am Anfang mal aussah, kannst du dir unter http://www.christoph-schnauss.de/prog/dyn/dyn01a.htm zu Gemüte führen - bitte keine Diskussion zu dieser Grausamkeit ;-)

            Wenn schon, dann würde ich bei einer "Revision" versuchen, als Maßeinheit möglichst durchgängig "em" einzusetzen.
            Naja, was beim positionieren mit JS nicht unbedingt Sinn macht. Da du die Einheiten vom Browser auchn nur als Pixel zurückbekommst.

            Ich habs mal schnell neu gemacht, kannst ja nochmal draufkucken.

            Grüße aus Berlin

            Christoph S.

            1. Hallo Christoph.

              Wie es ganz am Anfang mal aussah, kannst du dir unter http://www.christoph-schnauss.de/prog/dyn/dyn01a.htm zu Gemüte führen - bitte keine Diskussion zu dieser Grausamkeit ;-)

              "Das Script wird von Netswcape 6 nicht ausgeführt, aber von Netscape 4.7, Opera und natürlich vom Internet Explo"

              An dieser Stelle hast du wohl gemerkt, wie sinnlos eine Portierung für den IE ist? ;)

              Gruß, Ashura

              --
              Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
              30 Days to becoming an Opera8 Lover -- Day 16: Sessions
              Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
              [Deshalb frei! - Argumente pro freie Software]
              1. hallo,

                "Das Script wird von Netswcape 6 nicht ausgeführt, aber von Netscape 4.7, Opera und natürlich vom Internet Explo"
                An dieser Stelle hast du wohl gemerkt, wie sinnlos eine Portierung für den IE ist? ;)

                Nö. Ich habe diese Seite bloß nie online gestellt, die lag immer nur in meinem Archiv rum, also brauchte ich mir für den angezeigten Text keine Mühe geben. Wichtig war das eingesetzte Script, das ich Mitte 2000 enorm "eingedampft" habe, die ewig langen Arrays zur Berechnung der Bahnen für die Grafiken wurden mir zuviel.

                Grüße aus Berlin

                Christoph S.

    2. Lieber Christoph,

      kannst du dir auf meiner Seite anschauen, Script steht im Quelltext.

      *LOL* Schön, wie das Ding an Fahrt gewinnt, wenn man auf den Button "Animation starten" mehrfach klickt!

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      1. hallo Felix,

        kannst du dir auf meiner Seite anschauen, Script steht im Quelltext.
        *LOL* Schön, wie das Ding an Fahrt gewinnt, wenn man auf den Button "Animation starten" mehrfach klickt!

        Wirst du wohl ... das ist ein streng gehütetes Geheimnis (ließe sich aber auch noch unterbinden)!

        Grüße aus Berlin

        Christoph S.

  2. Hi uwe_17,

    Hallo, ich möchte gern ein Bild <img> über den Bildschirm bewegen. habe nur keinen Plan wie. Das heißt, ich muß ja nur eine coordinate in einer schleife solange Variable größer null runterlaufen lassen.

    Vielleicht hilft dir das Beispiel aus SELFHTML?

    for (x>0)
    {
      x = x - 1;
    }

    Vielleicht auch nicht.

    Und du fängst besser von vorne an.

    Gruß,
    Gunnar

    --
    “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
    1. hallo Gunnar,

      Und du fängst besser von vorne an.

      Das Entscheidende steht in http://de.selfhtml.org/javascript/objekte/math.htm

      Grüße aus Berlin

      Christoph S.

      1. Hi Christoph,

        Das Entscheidende steht in http://de.selfhtml.org/javascript/objekte/math.htm

        Ich finde http://de.selfhtml.org/javascript/sprache/schleifen.htm auch sehr entscheidend.

        Gruß,
        Gunnar

        --
        “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
  3. Hallo uwe_17,

    <img src="doktorfisch.gif" width="30px" height="50px">

    Witzig, unter dem folgenden Link findest du mein DHTML-Erstlingswerk von vor vier Jahren, an dem ich "Blut geleckt" habe und das vielleicht ganz ähnlich ist wie dein Vorhaben. Auch wenn ich heute vieles anders machen würde, das bleibt so wie es ist! Der Fisch tut mir in Opera allerdings ziemlich Leid:

    http://www.sprachlernspiele.de/Fisch/Fischframe.html

    Vielleicht ermuntert dich das ja auch zum Freischwimmen, und du findest vielleicht auch ein paar Anregungen.

    Gruß Gernot

    1. hallo Gernotk,

      http://www.sprachlernspiele.de/Fisch/Fischframe.html

      Neee, doch bitte nicht dieses absolut kaputte Frameset. Wenn schon, dann http://www.sprachlernspiele.de/Fisch/Fisch.html, wobei es darin auch eine äußerst aussagekräftige Zeile
        <noscript></noscript>
      gibt ... ;-)

      Vielleicht ermuntert dich das ja auch zum Freischwimmen

      vielleicht ...

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph,

        Neee, doch bitte nicht dieses absolut kaputte Frameset. Wenn schon, dann http://www.sprachlernspiele.de/Fisch/Fisch.html, wobei es darin auch eine äußerst aussagekräftige Zeile
          <noscript></noscript>
        gibt ... ;-)

        Das schreibt sich mit Phase5 immer automatisch, und wenn ich dran denke, mache ich es heutzutage auch weg.

        Wie ich schon sagte, das würde ich heute anders machen, aber es bleibt wie es ist!

        Ohne Frameset fehlt das Seegras!

        Gruß Gernot

        1. Hallo.

          Ohne Frameset fehlt das Seegras!

          Zweifelsfrei ein herber Verlust.
          MfG, at

          1. Hallo at,

            Ohne Frameset fehlt das Seegras!

            Zweifelsfrei ein herber Verlust.

            ... zumal, wenn man bedenkt, wie lange ich bei diesem Seegras-Gif gebraucht habe, bis ich herausfand wie ich bei ihrer Konvertierung aus Flash das Anti-Aliasing abgestellt bekam!

            Gruß Gernot

            1. Hallo.

              ... zumal, wenn man bedenkt, wie lange ich bei diesem Seegras-Gif gebraucht habe, bis ich herausfand wie ich bei ihrer Konvertierung aus Flash das Anti-Aliasing abgestellt bekam!

              Oh, das muss tatsächlich frustrierend sein. Da fühle ich mit dir.
              MfG, at