Bild des Monats
    
 HomeBilder • Monatsbild 01 Demo   ZIP Test-Grafiken  QuellCode 

 Monatsbild 01  1 von 12 (getElementByID)

Das Bild des Monats anzeigen. Sie halten 12 Grafiken bereit die abhängig vom aktuellen Monat angezeigt werden sollen. Zusätzlich wird durch Zuordnung der 'title'-Informationen einer von 12 MouseOver-Texten angezeigt.

Eine von 12 Grafiken abhängig vom aktuellen Monat anzeigen

UPDATE  25.07.2010  Änderung des Scriptcodes + zeitverzögerter Aufruf der Funktion


Bedingung hier:  Die Dateinamen müssen einem System entsprechen und mit einer zweistelligen Zahl enden. Außerdem müssen die Grafiken im gleichen Ordner abgelegt sein. Anders ist das im Beispiel Monatsbild 02 - Array


Sie möchten monatlich ein anderes Bild aus einer Auswahl von 12 Bildern anzeigen. Das Script ermittelt aus dem Systemdatum den aktuellen Monat und generiert daraus die Bild-Url.

Zu jeder Grafik wird der zugehörige 'title'-Text angezeigt, der in einem Register abgelegt wurde.

<img title="xxx" src="bild03.jpg" ...


Grafik für diesen Monat

 Bild des Monats Abhängig vom aktuellen Monat wird eines von 12 Bildern angezeigt. Dazu wird eine Platzhaltergrafik durch ein Script gegen die betreffende Grafik ausgetauscht. Aus dem aktuellen Datum wird der Monatswert ermittelt aus dem widerum eine zweistellige Ziffer generiert wird.




   Vorgaben

1) alle Bilder sollten die gleichen Abmessungen haben
2) alle Bilder stehen im gleichen Verzeichnis
3) alle Dateibezeichnungen enden mit einer fortlaufenden zweistelligen Zahl von 01 - 12
4) die Grafikformate aller Bilder sind identisch (GIF, JPG, PNG)


Beispiele:

images/bild01.gif images/bild02.gif images/bild03.gif ... images/bild12.gif
Grafik01.jpg Grafik02.jpg Grafik03.jpg ... Grafik12.jpg
aufnahme001.jpg aufnahme002.jpg aufnahme003.jpg ... aufnahme012.jpg


   Aufwand

  • 12 Grafiken mit identischen Bildmaßen herstellen
  • Script in den HEAD-Bereich kopieren
  • Anpassungen eintragen
  • Grafik im Body mit Attribut id="Monatsbild" notieren



Wenn Ihnen das als Einstieg ausreicht öffnen Sie die Textdatei (oben), kopieren den Code in Ihre Seite und experimentieren weiter.





   Verwendete Technik

Um eine monatsabhängige Grafik anzeigen zu lassen, wird hier die JavaScript-interne Funktion getMonth() verwendet. Diese Funktion ermittelt aus einem Datumswert den aktuellen Monatswert.
var VariablenName = DATUMSWERT.getMonth();
JavaScript liefert als Rückgabe einen Zahlenwert von 0 bis 11, abhängig vom derzeitigen Monat. 0 für Januar, 1 für Februar, usw. Mit diesem Zahlenwert arbeite ich in meinem Script. Zur Vereinfachung addiere ich eine 1 hinzu. Dadurch erhalte ich Werte von 1 - 12.
var VariablenName = (DATUMSWERT.getMonth() +1);
Der Rückgabewert wird zur Weiterverarbeitung in eine Variable geschrieben.


   URL der Monatsgrafik ermitteln

Die zu Beginn angezeigte Platzhaltergrafik hat eine eindeutige ID. Mittels dieser ID wird das Script die zu tauschende Grafik identifizieren um den Bildtausch einzuleiten.

Die ID ist hier: 'Monatsbild' Aus dem aktuellen Datum wird der aktuelle Monat ermittelt. Das Ergebnis ist eine Ziffer von '0' bis '11'. Zu diesem Ergebnis wird der Wert '1' addiert. Das neue Ergebnis ist eine Ziffer von '1' bis '12'. Der Wert wird der Variablen 'MonatJetzt01' zugeordnet.
var DatumJetzt01 = new Date();
var MonatJetzt01 = (DatumJetzt01.getMonth()+1);
Aus diesem Zahlenwert wird ein zweistelliger Wert generiert. indem man vor einstelligen Zahlenwert eine Null voranstellt. Der Wert wird der Variablen 'Nummer' zugeordnet.
Nummer = (MonatJetzt01 < 10) ? "0" + MonatJetzt01 : "" + MonatJetzt01;
Aus den Vorgaben für den Pfad + dem ersten Teil der URL der Grafiken (BildURL) und der Vorgabe für die Dateiendung (GIF, JPG, PNG) wird die URL der Monatsgrafik ermittelt. Der Wert wird der Variablen 'BildURL' zugeordnet.
PfadNameTeil = "bilder/aufnahme0"
Dateiendung = ".jpg"
BildURL = PfadNameTeil + Nummer + Dateiendung;


   Zuordnung von URL und Titeltext

Der Dateiname des anzuzeigenden Bildes wurde vom Script ermittelt und wird danach dem Seitenelement (der Platzhaltergrafik) mit der ID="Monatsbild" zugeordnet.
document.getElementById("Monatsbild").src = BildURL;
Ich habe das Script um eine Funktion erweitert. Jetzt wird auch der MouseOver-Titeltext für das angezeigte Bild dynamisch erzeugt. Ein Array, der 12 Werte enthält, dient als Ablage für die 12 Texte, die bei MouseOver angezeigt werden. Hier im Beispiel sind dort die Texte für die Monatsbilder abgelegt. Eine Programmzeile des Scripts ordnet dem Bild die 'title-Angaben' abhängig vom aktuellen Monat zu.
document.getElementById("Monatsbild").title= Text;
Abhängig vom Einsatzbereich des Scripts können sie die Eintragungen im Array leer lassen oder um eine treffende Bildbeschreibung ergänzen.


   Bildtausch-Script im Head

Die Dateinamen für das Beispiel lauten hier:

aufnahme001.jpg aufnahme002.jpg aufnahme003.jpg ... aufnahme012.jpg

Der erste Teil der Dateinamen, gegebenefalls mit Pfadangaben, werden der Variablen 'PfadNameTeil' zugewiesen. Punkt und Dateiendung sind in der Variablen 'Dateiendung' notiert.
PfadNameTeil = "aufnahme0"
Dateiendung = ".jpg"
Das Script setzt diese Segmente und die ermittelte zweistellige Nummer zu einer gültigen URL zusammen:
<script language="JavaScript" type="text/javascript">
<!--

// ****************** Anpassungen *****************

// hier Dateinameninfo (incl. Pfad) eintragen
// für "aufnahme001.jpg" zum Beispiel "aufnahme0"
// für "fotos/aufnahme001.jpg" zum Beispiel "fotos/aufnahme0"
// letzten beiden Ziffern weglassen

PfadNameTeil = "aufnahme0";
Dateiendung = ".jpg";

// hier Bildtexte eintragen

var Monat=new Array();
Monat[1]="Monatsbild für Januar";
Monat[2]="Monatsbild für Februar";
Monat[3]="Monatsbild für März";
Monat[4]="Monatsbild für April";
Monat[5]="Monatsbild für Mai";
Monat[6]="Monatsbild für Juni";
Monat[7]="Monatsbild für Juli";
Monat[8]="Monatsbild für August";
Monat[9]="Monatsbild für September";
Monat[10]="Monatsbild für Oktober";
Monat[11]="Monatsbild für November";
Monat[12]="Monatsbild für Dezember";

// ***********************************************


var DatumJetzt01 = new Date();
var MonatJetzt01 = (DatumJetzt01.getMonth()+1);


// Monatsnummer immer zweistellig
Nummer = (MonatJetzt01 < 10) ? "0" + MonatJetzt01 : "" + MonatJetzt01;

var Text = "";
var BildURL = "";


function Titeltext (DieserMonatNummmer)
{
return Monat[DieserMonatNummmer];
}


function BildDesMonats01()
{
BildURL = PfadNameTeil + Nummer + Dateiendung;
document.getElementById("Monatsbild").src = BildURL;
Text = Titeltext(MonatJetzt01);
document.getElementById("Monatsbild").title = Text;
}

// Der Aufruf erfolgt nach 1500 Millisekunden

setTimeout('BildDesMonats01()',1500);

//-->
</script>

Die im Script blau markierten Angaben passen sie entsprechend ihrer Dateinamen an:
Erster Teil des Dateinamens ohne zweistellige Zahl und den Grafiktyp.

PfadNameTeil = "aufnahme0"
Dateiendung = ".jpg"
Das Script liefert als Ergebnis für dieses Beispiel:




   im Body

Das <img>-Tag für die Grafik wird notiert. Die zu Beginn angezeigte Platzhaltergrafik bekommt eine eindeutige ID. Die ID ist hier: 'Monatsbild'

<img id="Monatsbild" src="platzhalter.jpg" ... >







Monatsbild 02 (1 von 12) URLs in einem Array

Wochentagsbild 01 - Bild des Wochentags (1 von 7)

Grafik aktuelles Sternzeichen (1 von 12)