Wert eines Array-Elements zuordnen Dateiname
    
 HomeJavaScriptBilder Monatsbild 02 Demo   ZIP Test-Grafiken  Quellcode 

 Monatsbild 02 - Array  (Array-Elemente zuordnen)

Hier erkläre ich wie Dateinamen in einem Array abgelegt werden, auf die man dann mit einer JavaScript-Funktion gezielt zugreifen kann. Der Dateinamme für das aktuelles Monatsbild soll dem Array entnommen und die entsprechende Grafik angezeigt werden.

URL für eine Grafik aus einem Array entnehmen

Beispiel einer Anwendung: Monatsabhängig soll ein bestimmtes Foto angezeigt werden.

Vorteil hier:  Die Dateinamen können frei festgelegt werden und müssen keinem System entsprechen. Sie müssen auch nicht wie im Beispiel Monatsbild 01 im gleichen Ordner abgelegt sein. Dateiname und Pfad können frei gewählt werden!


a  gerade ermittelte Daten

     b  erzeugte Anzeige

Grafik für diesen Monat


Die 12 Datenquellen (URLs) der Grafiken werden in einem Array (Register) mit dem Namen 'bildarray' abgelegt. Entsprechend der Anzahl der Monate innerhalb eines Jahres sind 12 Grafiken erforderlich und 12 URLs hinterlegt. Beispiel:

Register: Bildarray
Index-Nr. 0 1 2 3 ... 10 11
Wert: "jan.gif" "bild2.gif" "teich.jpg" "blume4.jpg" ... "nov.gif" "dec.gif"




   Erklärungen

Im Body gibt es eine Platzhaltergrafik, die mit JavaScript gegen das aktuelle Monatsfoto ausgetauscht wird. Das geschieht entweder über das Attribut 'id' oder das Attribut 'name'. Dazu muss der Grafik entsprechend eine ID oder ein Name zugeordnet werden. Ich verwende hier das Attribut ' id="Monatsbild" '. Über diese ID kann ich mit JavaScript-Anweisungen die Grafik gezielt ansprechen.

HTML-Code für die Platzhaltergrafik / das Image / das Bild
<img id="Monatsbild" src="platzhalter.gif" ... >
12 Grafiken halte ich für die monatlich unterschiedliche Anzeige bereit.

Die URLs der 12 Grafiken sind in einem Array (Register) abgelegt. JavaScript ermittelt aus dem Date-Objekt den aktuellen Monat und speichert den Wert (eine Zahl) in einer Variablen ab. Über diese Zahl kann die entsprechende Bildquelle (URL) zugeordnet werden. Dazu entnimmt eine Script-Anweisung dem Array die URL für das aktuelle Bild.



Die URLs der Grafiken wurden in einem Array abgelegt. Jede "Schublade" des Arrays enthält die Information für die Datenquelle einer Grafik.



Index-Nr. 0 1 2 3 ... 10 11
bildarray "jan.gif" "feb.gif" "mar.gif" "apr.gif" ... "nov.gif" "dec.gif"



   So arbeitet das JavaScript

Zuerst definiere ich einen Array, der die 12 URLs enthält:
bildarray = new Array('jan.gif','feb.gif','mar.gif', ... ,'dec.gif');
Dann ermittle ich aus dem Systemdatum einen Wert, der dem aktuellen Monat entspricht. Diesen Wert schreibe ich in die Variable 'monat':
var today = new Date();
var monat = today.getMonth();
Die Funktion 'MonatsGrafik()' zur Anzeige der Monatsgrafik verwendet diesen Wert:
function MonatsGrafik()
{
document.getElementById("Monatsbild").src = bildarray[monat];
}
Die Anweisung bedeutet:

Ersetze in diesem Dokument die Quellenangabe für das Objekt mit der ID 'Monatsbild' mit dem, was im Array mit der Bezeichnung 'bildarray' in der Schublade mit der Nummer zu finden ist, was als Wert in der Variablen 'monat' gespeichert wurde.

Die Variable 'monat' enthält eine Zahl (Monatszahl) also das, was durch das Script ermittelt und in der Variablen 'monat' abgelegt wurde. Diese Zahl wird als Indexnummer eingesetzt. Sie kennen die Anweisung den Wert eines bestimmten Array-Elements zu ermitteln:

bildarray[Indexnummer];
Der Austausch der Grafik funktioniert hier mittels SRC-Zuweisung, auf der gleichen Basis wie beim Image-Change / MouseOver. (Siehe MouseOver-Erklärung)


Die Variable 'monat' enthält den Wert aus der Ermittlung der Monatszahl. Für Januar ergibt die Berechnung '0' , für Februar '1', usw. (Beginn mit Null).




   Quelltext

Script im HEAD-Bereich
<script type="text/javascript" language="JavaScript">
<!-- Begin

// Array mit den Dateinamen

bildarray = new Array(
"fotos/aufnahme001.jpg",
"fotos/wolken.jpg",
"tiere/fische.jpg",
"pflanzen/klee.jpg",
"fotos/aufnahme005.jpg",
"fotos/aufnahme006.jpg",
"fotos2010/boot.jpg",
"fotos/wolken02.jpg",
"technik/hochspannung.jpg",
"fotos/bahnhof.jpg",
"fotos/aufnahme011.jpg",
"fotos/kerzen.jpg");

// Monatsnummer ermitteln

var today = new Date();
var monat = today.getMonth();


// Funktion zum Austausch der Grafik

function MonatsGrafik()
{
document.getElementById("Monatsbild").src = bildarray[monat];
}

// Der Aufruf erfolgt nach 1000 Millisekunden

setTimeout('MonatsGrafik()',1000);

//  End -->
</script>
Platzhaltergrafik im Body
<img id="Monatsbild" src="transpixel.gif" width="200" height="150" ... >







Monatsbild 01 (1 von 12)

Wochentagsbild 01 - Bild des Wochentags (1 von 7)

Grafik aktuelles Sternzeichen (1 von 12)