lousypoetry: bild nach bildwechsel "löschen"

Hallo!

ich hab folgende frage: ich führe mit einer funktion einen bildwechsel durch:
b[0] = new Image(); b[0].src ="haus.gif";
b[1] = new Image(); b[1].src ="garten.gif";

function wechseln()
  {
          document.images[0]. src = b[1].src;
  }

b[1] ist eine gif-animation und ich möchte, dass sie nach ablauf wieder aus dem bild verschwindet. aber: wie bekomme ich das hin? ich kann das bild ja nicht über seine id oder seinen namen ansprechen (oder doch?), kann mir da jemand helfen? Danke!

  1. Hallo lousypoetry !

    ich hab folgende frage: ich führe mit einer funktion einen bildwechsel durch:

    -> notice: b musst du vorher zu array machen, und wenn das dein kompletter script sein
         soll, wovon ich ausgehe, muss da folgendes hinzu:
           b = new Array();

    b[0] = new Image(); b[0].src ="haus.gif";
    b[1] = new Image(); b[1].src ="garten.gif";

    function wechseln()
      {
              document.images[0]. src = b[1].src;

    -------------------------------^^^^
                             !  bitte kein Leerzeichen !

    }

    b[1] ist eine gif-animation und ich möchte, dass sie nach ablauf wieder aus dem bild verschwindet.

    Also ein transparentes Bild an die stelle des Bildes ? Das ist kein problem, einfach ein transparentes gif mit der größe des gif's machen, und dass als b[2] nach entsprechenden millisekunden einfügen (window.setTimeout).

    Oder du kannst es (ist besser) direkt in der Gif-animation machen, einfach das letzte bild nach "hintergrund" (der transparent sein sollte) auflösen, das geht bei den meisten Programmen (z.B. ulead gif-animator)

    aber: wie bekomme ich das hin? ich kann das bild ja nicht über seine id oder seinen namen ansprechen (oder doch?), kann mir da jemand helfen? Danke!
    ehm.... du hast es doch oben in deinem quelltext über document.images[0], also dem ersten Bild auf der Seite angesprochen - so sprichst du es nochmal an !
    Ansonsten kannst du das Bild egal wie ansprechen, z.B.

    - id
       - name
       - sonstigen attributen (wird etwas umständlich ;-)
       - node (z.B. als "icon" bei einem <a>)

    Mit id geht das z.B. nach DOM-Standart ganz einfach:

    <img src="bla.gif" id="meinbild">

    .....
     neuesbild = new Image(); neuesbild.src = "bla2.gif";
     document.getElementById("meinbild").src = neuesbild.src;

    oder per name:

    <img name="meinbild" ...
    ....
     document.getElementbyName("meinbild")[0].src

    da gehört dieser array-index [x] hinzu, da es im gegensatz zu id mehrere mit dem gleichen name-attribut gekennzeichnete tags auf der seite geben darf.

    Oder ein kleines DOM-Beispiel:

    <a href="bla.htm" onmouseover="bild(this)"><img src="icon-cold.gif"> Mein text</a>

    ......

    function bild(elem)
    {
     elem.firstChild.src = neuesbild.src
    }

    Wie du siehst: So einfach ist es ! Lese dir doch zu dem ganzen Zeug mal das ganze Zeug in SelfHTML durch, da stehts einigermaßen erklärt.

    benji

    --
    Those who know don't talk.
    Those who talk don't know.
    1. Also ein transparentes Bild an die stelle des Bildes ?

      eigentlich wollte ich den weg vermeiden, denn damit ist das bild ja nicht verschwunden sondern 'nur' unsichtbar.hm, vielleicht reichts für mein vorhaben aber auch.

      ehm.... du hast es doch oben in deinem quelltext über document.images[0], also dem ersten Bild auf der Seite angesprochen - so sprichst du es nochmal an !

      ja, aber images[0] ist auch mit <img src...> im quelltext definiert, die anderen bilder nicht. somit kann ich
      document.images[1] nicht verwenden, da es kein erstes bild gibt. krieg zumindest immer ne fehlermeldung.

      Mit id geht das z.B. nach DOM-Standart ganz einfach:
      <img src="bla.gif" id="meinbild">

      aber die id krieg ich ja nicht in den (das?) Array, oder? Oder gibts sowas wie
      var b = new Array();
      b[1] = new Image(); b[1].src="'garten.gif' id='garten'"   ?

      1. Hallo lousypoetry,

        aber die id krieg ich ja nicht in den (das?) Array, oder? Oder gibts sowas wie
        var b = new Array();
        b[1] = new Image(); b[1].src="'garten.gif' id='garten'"   ?

        Nein, aber
        b[1] = new Image(); b[1].src="'garten.gif'; b[1].name='garten';

        Auf das Bild kannst Du dann mit document.getElementsByName("garten")[0].src zugreifen.

        (@benji: kleiner Tippfehler bei Dir: getElementsByName() schreibt sich mit s und großem B.)

        Grüße
        Andreas

        --
        "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
        (Rich Cook)