Christian Leipnitz: Hintergrund_bild_ wechseln

Hallo zusammen!

Also langsam bin ich am Verzweifeln. Sicher könnt Ihr mir weiterhelfen.
(Im Archiv konnte ich - zumindest mit meinem Formulierungen - nichts finden.)

Es geht darum, dass ich beim Drüberfahren mit der Maus über eine Grafik das Hintergrundbild auswechseln möchte. (Und beim Verlassen des Buttons wieder den Urzustand herstellen.) Wie man diese Sache mit Hintergrund_farben_ anstellt, konnte ich schon rausfinden.

Aber mit einem Hintergrund_bild_ kriege ich das nicht hin.

Ein "normales" Bild zu ändern, bzw. auszuwechseln, ist kein Problem, da man (also ich machte es bisher so) diesem Bild einen Namen geben kann, welcher in der Funktion definiert wird. (Ich hoffe, ich drücke mich einigermaßen richtig aus ...)

Aber es funktioniert nicht, wenn ich dem Background-Image einen Namen gebe, oder?

Also so:

<body topmargin="x" leftmargin="x" background="bg_01.gif" name="test">

Oder muss ich in der entsprechenden Funktion etwas ändern?
Also nicht
"parent.document.bgColor" (oder ähnliches), sondern ..., tja, eben das weiß ich nicht. :(

Hoffe, ich konnte mich verständlich ausdrücken und bedanke mich für alle Tipps im Voraus,

  • Christian -
  1. Hallo Christian

    Es geht darum, dass ich beim Drüberfahren mit der Maus über eine Grafik das Hintergrundbild auswechseln möchte. (Und beim Verlassen des Buttons wieder den Urzustand herstellen.) Wie man diese Sache mit Hintergrund_farben_ anstellt, konnte ich schon rausfinden.

    Das image-Objekt bezieht sich nur auf solche Grafiken, die man in HTML mit dem <img>-Tag einbinden kann, nicht auf das Beackground-Image.

    Versuchs mal so:
    <body id="fileBody" background="datei1.gif" ...>
    <layer name="bodylayer" top="0" left="0" width="100%" background="datei1.gif">
    ...Hier der Inhalt der Datei
    </layer>
    </body>

    Dann kannst du eine JavaScript-Funktion schreiben, die in etwa so aussehen koennte:

    function changeBackground(newImage)
    {
      if(document.layers)
        document.bodyLayer.background.src = newImage;
        /* vgl dazu auch <../../tecbbf.htm#a3> */
      if(document.all)
        document.all.fileBody.setAttribtue("background",newImage,"false");
        /* vgl dazu auch <../../tecbba.htm#a36> */
    }

    Die Funktion erwartet beim Aufruf den Dateinamen der neuen Grafikdatei.

    Ist jetzt nicht getestet, koennen also Fehler drin sein.

    viele Gruesse
      Stefan Muenz

    1. Hi Stefan!

      Erstmal "Vielen Dank" für die prompte und hilfreiche Beantwortung.

      Das image-Objekt bezieht sich nur auf solche Grafiken, die man in HTML mit dem <img>-Tag einbinden kann, nicht auf das Beackground-Image.

      Wahrscheinlich heißt es nicht umsonst "image"-Objekt ... :-)
      Als ich Deine Erlärung las, wurde mir sofort die Logik klar ...

      Versuchs mal so:

      »»[...]
      »»document.all.fileBody.setAttribtue
                                       ^^

      Lange, lange habe ich probiert, da es anfangs nicht funktionierte. Da ich Deinen Vorschlag kopiert habe, ist mir anfangs nicht der kleine - aber entscheidene -Schreibfehler aufgefallen. Dann, voller Hoffnung, wieder probiert. Es ging immer noch nicht.

      Also noch ein wenig rumgebastelt - bis es endlich klappte. (Yipee)

      Nun noch eine Frage:
      Im IE (5.0) funktioniert es ohne Probleme. NS (4.06) macht dagegen Probleme und zeigt den Wechsel nicht an.

      Ich habe gelesen, dass das "all"-Objekt nicht zum offiziellen JavaScript-Sprachstandard gehört, sondern von Microsoft für den IE 4.0 implementiert wurde.
      Heißt das jetzt, das Netscape damit überhaupt nichts anfangen kann (weil JScript nicht verstanden wird?)??

      Oder hab' ich noch einen Fehler?

      Vielen Danke und nochmal so viele Grüße,

      • Christian -