Utz: zyklischer Bildertausch != dynamischer Bildertausch // schwierige N

Beitrag lesen

Hi Bernhard,

hier ist ein Stück Code, den ich mal gebastelt habe, um einen Bildwechsel abhängig von dem Bild, das gerade zu sehen ist, zu machen. Müsste zumindest in die Richtung dessen gehen was Du machen willst.
Hier gibt es folgende Möglichkeiten: Es gibt mehrere versch. Ordner-Bilder - versch. aussehende offene, ein geschlossener. Die geschlossenen werden gegen die (passenden) offenen getauscht und umgekehrt. Dabei wird ausgelesen, ob im Augenblick ein offener oder geschlossener Ordner da ist.

Erst das Vorladen:

ordnerzu = new Image();
ordnerzu.src = "../images/Ordner_zu.gif";

ordnerallg = new Image();
ordnerallg.src = "../images/Ordner_allgemein.gif";

ordnerobjectif = new Image();
ordnerobjectif.src = "../images/Ordner_objectiF.gif";

usw.

Dann die passende Funktion

function folder(bildname, bildziel)
{

if(eval('document.' + bildname + '.src == ordnerzu.src'))
  {
    eval('document.' + bildname + '.src = ' + bildziel + '.src');
  }
else if(eval('document.' + bildname + '.src == ' + bildziel + '.src'))
  {
    eval('document.' + bildname + '.src = ordnerzu.src');
  }
}

Die Variablen "bildname" und "bildziel" werden übergeben. "bildname" ist der Identifier für die Bilder <img name="...">. "bildziel" übergibt nicht etwa das jeweilige Bildziel (blöde Formulierung), sondern welche Art von Ordner dargestellt werden soll, wenn er offen ist (geschlossen gibt's ja nur einen).

Erste if-Abfrage: Ist das definierte Bild "bildname" im Augenblick der geschlossene Ordner? Dann tausche dieses Bild gegen die Art geöffneten Ordner aus, der in "bildziel" angegeben wurde.

Zweite if-Abfrage: Ist das definierte Bild "bildname" im Augenblick der über "bildziel" übermittelte geöffnete Ordner? Wenn ja, dann tausche ihn gegen den geschlossenen Ordner aus.

Das Beispiel musst Du für Deine Zwecke bestimmt anpassen, aber ich hoffe, dass Prinzip der Abfrage, welches Bild gerade da ist, wird klar.

Ach ja: einige Leute halten die Verwendung von eval() für ziemlich kitzlig. Ich hab damit aber noch keine schlechten Erfahrungen gemacht.

Grüße,

Utz