Hell-O!
Da ich von javascript nicht sehr viel verstehe, waren das jetzt leicht böhmische Dörfer für mich. ich muss sagen, dass ich das Script aus einem anderen Forum übernommen habe.
Ja, ist mittlerweile geklärt. Für dich zum Verständnis:
So wie der Code da steht, wird beim Eintreten des Ereignisses "Mausklick" (Eventhandler onclick) die Funktion "changePicture" ausgeführt. Diese startet damit, dass alle für die Grafiken relevanten Informationen (Quelle, Abmessungen, Alternativtext) in einer komplexen Variable (nämlich einem Array von Objekten) gespeichert wird. Jedesmal! Da sich die Informationen, die in dieser komplexen Variable gespeichert sind, nicht ändern, würde es genügen, diese ein einziges Mal anzulegen. Entweder du definierst den Array außerhalb der Funktion:
<script type="text/javascript">
var pic = new Array();
// usw.
function changePicture(nr) {
// ohne Arraydefinition
}
</script>
Oder in einer eigenen Funktion, die du nach erfolgtem Laden des Dokumentes (Eventhandler onload) aufrufst.
Mein Hinweis mit dem Image-Objekt bezieht sich darauf, dass jedesmal, wenn du die Adresse der Grafik der Eigenschaft image.src zuweist, die Grafik komplett geladen wird (Stichwort "Vorladen von Grafiken"). Da ich erklärter Gegner diverser Vorladescripte bin, habe ich vorgeschlagen, statt eines Image-Objektes ein Standard-Objekt zu verwenden:
var pic = new Array();
pic[0] = new Object();
pic[0].source = 'pfad/zur/grafik.png';
pic[0].breite = 100;
pic[0].hoehe = 150;
pic[0].alttext = 'Alternativtext';
pic[1] = new Object();
Man könnte es auch über ein eigenes Objekt lösen, aber das würde vermutlich im Augenblick zu weit führen :-)
eine Thumbnail-Tabelle zeigt kleine Fotos, ein großes Foto soll bei OnClick gewechselt werden und ein Text soll ALT und an einem nahen Platz beim Foto mitgewechselt werden.
Dann platziere unter/neben/über der Grafik einen Textabsatz, auf den du mit Hilfe der getElement...-Methoden zugreifst und seinen Inhalt veränderst (für moderne Browser wäre nodeValue zu empfehlen, für ältere IEs innerText).
Siechfred