Bildwechsel mit Hilfe eines Timers
Jens
0 holger kuehne0 Jens0 holger kuehne0 Jens
Hallo,
ich habe folgendes Problem:
Ich habe eine undefinierte Zahl x an Bildern. Diese Bilder sollen im Browser in einem bestimmten Abstand (z.B. 5 sec.) ausgetauscht werden. Es soll für eine Art Präsentation genutzt werden.
Die Bilder sind mit Zahlen nummeriert (1.jpg, 2.jpg ...)und liegen alle in einem Verzeichnis.
Hat irgendjemand eine Idee?
Danke Jens
Hi
Das ist leider nicht ganz einfach. Die Bilder austauschen kann man mit Javascript relativ leicht, da gibt es auch viele Beispiele, sowohl im WWW, als auch in dem Forumsarchiv. Das Problem ist, dass du aber mit Javascript aber nicht testen kannst wieviele Bilder du auf dem Server hast. Du muesstest also Beim Aufruf dieser Seite ein serverseitiges Script starten, welches die Anzahl der Bilder bestimmt, oder noch besser die Ganze Seite dynamisch generiert.
Um dir da irgendwelche konkreten Tips zu geben, waere es gut, wenn du uns verraten koenntest welche serverseitige Scriptsprache du (wenn ueberhaupt ;-)) beherrscht, und! ob deine Bilder alle Gleich gross sind. (Das erleichtert den Javascriptteil sehr!)
Zum Javscriptteil:
Mit
Bild=new Image();
Bild.src="bildname.gif";
kann man ein neues "Grafikobjekt" erzeugen siehe:<../../tecbbe.htm#a1>
Eine zeitliche Abfolge kann man mit window.setTimeout("irgendeinefunktion()",Wartezeit in Millisekunden); starten
siehe <../../tecb.htm#a45>
Wie du jetzt weiter vorgehst haengt eben davon ab, ob die Bilder alle gleich gross sind.
Tschau Holger
Danke erstmal,
Wie wäre es wenn ich die Anzahl der Bilder vor dem Start der Seite(auf der Seite sollen nur die Bilder laufen)über ein Formular übergebe. Nun ist aber das Problem wie sage ich der Seite Zähle bis Bild X hoch und beginn von vorne.
Danke Jens
Hi Jens
Da hilft es sehr, wenn man die Bilder clever definiert.
Z.B. bei gleichbleibender Bildergroesse geht das so:
Die Bildernamen sind "0.jpg" bis "Bilderanzahl.jpg"
Ich gehe davon aus, dass die Anzahl der Bilder in der Variablen Bilderanzahl steht. Je nachdem wie du die Anzahl der Bilder uebergibst, kann unter Umstaenden auch die Initialisierung des Arrays Bilder erst "onload", also nach dem laden der Seite gestartet werden. Dazu muss der Array dann natuerlich in eine Funktion geschrieben werden.
...
Wartezeit="5000";
BildNr=0; /*Nummer des Startbildes*/
Bilder=new Array();
for (i=0;i<Bilderanzahl;i++){
Bilder[i]=new Image();
Bilder[i].src=i+".jpg";
}
function Bildwechsel(){
if (BildNr==(Bilderanzahl-1)) BildNr=0;
else BildNr++;
document.images[0].src=Bilder[BildNr].src;
window.setTimeout("Bildwechsel()",Wartezeit);
}
Dann musst du nur noch im body onload die Funktion Bildwechsel() aufrufen, und alles sollte laufen. Im Detail ist das natuerlich etwas komplizierter, weil du auf jeden Fall eine Abbruchtaste oder aehnliches anbieten solltest.
Wenn viele Bilder gezeigt werden sollen, wuerde ich also Startbild ein "Bitte warten, Bilder werden geladen" Bild waehlen. In diesem Fall ist es natuerlich sinnvoll bei Erreichen des letzen Bildes mit dem Bild1 und nicht mit dem Bild0 weiterzumachen.
Tschau Holger
Hi Holger,
OK danke für den Tip ich werde es ausprobieren.
Grettings Jens