| JavaScript: Slideshow Beispiel02 |
| Geschrieben von: Andreas Berger |
| Sonntag, den 01. März 2009 um 12:30 Uhr |
|
Im zweiten Beispiel nutzen wir die Möglichkeit, mit einer Scriptdatei verschiedene Slideshows zu bedienen. Die Annahme: Auf verschiedenen Seiten eines Internetauftritts soll jeweils 1 Slideshow dargestellt werden. Die Bezeichnungen "be_slide.html" und "be_slide.js" entsprechen den Dateinamen in dem Beispiel, das im Download des Scripts hier Javascript: Slideshow enthalten ist. Die nachfolgenden Erklärungen beziehen sich auf die Dateien im Beispiel und erläutern nur die Einbindung in eine Webseite und die Konfiguration des heruntergeladenen Scripts be_slide.js. be_slide.html - die WebseiteDer erste Schritt zur Verwendung ist auch diesmal die Einbindung des Scripts in die Webseite. Nur diesmal möchten wir das Script mit verschiedenen Slideshows ansprechen. Dazu müssen wir im HEAD-Bereich der Seite nicht nur das Script verlinken, sondern auch die jeweiligen Einstellungen für unsere Slideshow festlegen. Zuerst das Script:<script type="text/javascript" src="be_slide.js"></script> Das Beispiel geht davon aus, dass das Script im selben Verzeichnis liegt wie die Webseite. <script type="text/javascript" src="be_slide.js"></script> <script type="text/javascript"> var pics1=new Array ('pics/pic01a.jpg', 'pics/pic01b.jpg', 'pics/pic01c.jpg'); var buttons1=new Array ('bwd.png', 'start.png', 'stop.png', 'fwd.png'); var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n","y",buttons1); </script>So, was haben wir gemacht: <script type="text/javascript"> //diese Zeile öffnet einen neuen SCRIPT-Tag var pics1=new Array ('pics/pic01a.jpg', 'pics/pic01b.jpg', 'pics/pic01c.jpg'); //In diesem Array werden die Bilder angelegt, die die Slideshow verwenden soll. //In diesem Beispiel liegen sie in einem Unterverzeichnis "pics". var buttons1=new Array ('bwd.png', 'start.png', 'stop.png', 'fwd.png'); //In diesem Array werden die Kontrollelemente festgelegt. Verwenden wir keine, //dann brauchen wir auch diesen Array nicht! Die Zeile ist also optional. //Bei den Kontrollelementen hat man die Wahl zwischen Textlinks und grafischen //Buttons. In diesem Array werden dementsprechend entweder der Text für die //Textlinks oder der Pfad zum Button eingetragen. Findet das Script die Endung //.jpg, .gif oder .png, dann wird der Button angezeigt, ansonsten ein Textlink //die Reihenfolge der Kontrollelemente und damit auch der Elemente in diesem //Array ist: ZURÜCK - START - STOP - VOR var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n","y",buttons1); //Diese Zeile schlussendlich ruft die Slideshow auf. //Wir werden sie uns gleich genauer ansehen. </script> //Zuvor aber schließen wir mit der letzten Zeile den SCRIPT-Tag.So und jetzt zerlegen wir die Zeile mit dem Aufruf der Slideshow: var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n","y",buttons1); var be_0Die jeweilige Instanz der Slideshow wird als Variable mit dem Namen be_0 definiert. Der Name ist dabei festgelegt. Er ist bei 1 Slideshow immer be_0. be_slideshow()be_slideshow() ist der Name der Funktion, die die Slideshow darstellt und steuert. Innerhalb der runden Klammern können dieser Funktion bis zu 13 Parameter übergeben werden. Warum "bis zu"? Ganz einfach, weil in der Datei be_slide.js für jeden Parameter ein DEFAULT-Wert festgelegt werden kann, auf den das Script zurückgreift, wenn er beim Aufruf nicht übergeben wurde. Verwendet man innerhalb eines Internetauftritts zum Beispiel mehrere Slideshows, die immer gleich aussehen und sich nur durch die dargestellten Bilder unterscheiden, dann kann man in der Datei be_slide.js einmal alle Einstellungen treffen (was ich ohnehin empfehle) und auf den einzelnen Seiten dann zum Beispiel nur noch den Array mit den Bildern definieren (siehe oben) und die Slideshow aufrufen wie folgt: var be_0= new be_slideshow("0",pics1);Prinzipiell gilt: Man muss nicht alle Parameter im Aufruf übergeben, die Reihenfolge muss aber eingehalten werden. Möchte ich mit dem dritten Parameter von der Standardeinstellung abweichen, dann muss ich die Parameter 1 und 2 auch übergeben. Treffe ich erst im 13. Parameter eine Festlegung, die vom Standardwert abweicht - dann muss ich alle 13 Parameter angeben. Jetzt aber zu den einzelnen Parametern: var be_0= new be_slideshow("0"); //Der 1. Parameter ist die Nummer der Slideshow, beginnend mit "0" //Die Null entspricht der Null im Namen der Variable be_0 //(Die Frage warum die Slideshow eine Nummer braucht klären wir im 3. Beispiel) var be_0= new be_slideshow("0",pics1); //Der 2. Parameter ist der Parameter, den wir für das Array mit den Bildern //festgelegt haben, im Beispiel ist das pics1. //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_imges var be_0= new be_slideshow("0",pics1,"slideshow"); //Der 3. Parameter ist die Identity des DIV-Containers, //in dem die Slideshow angezeigt werden soll. //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_divid var be_0= new be_slideshow("0",pics1,"slideshow",400); //Der 4. Parameter ist die Breite des breitesten Bildes in Pixel. //Hinweis: Die Bilder werden vom Script nicht skaliert! //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_picwid var be_0= new be_slideshow("0",pics1,"slideshow",400,300); //Der 5. Parameter ist die Höhe des höchsten Bildes in Pixel. //Hinweis: Die Bilder werden vom Script nicht skaliert! //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_pichei var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc"); //Der 6. Parameter ist die Hintergrundfarbe der Slideshow. Sie ist von Bedeutung, // wenn Bilder nicht exakt den - in den beiden vorherigen Parametern angegebenen //Abmessungen entsprechen. //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_backgr var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1); //Der 7. Parameter left fest, wie lange ein Bild zwischen zwei Wechseln // angezeigt wird (in Sekunden). //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_sdur var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1); //Der 8. Parameter ist die Zeit, die der Wechsel dauern soll //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_fdur var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20); //Der 9. Parameter ist die Anzahl der Schritte, in denen von 100-0 überblendet //werden soll. Ein Wert von 1 bis 100, je höher desto fließender der Wechsel. //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_steps var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n"); //Der 10. Parameter legt die Starteinstellung fest. //Soll nach dem Laden automatisch gestartet werden? "y" für Ja, "n" für Nein //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_startwhen var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n"); //Der 11. Parameter betrifft das Startbild. //Soll mit einem zufälligen Bild begonnen werden? "y" für Ja, "n" für Nein //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_shuffle var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n","y"); //Der 12. Parameter entscheidet über die Anzeige von Kontrollelementen. //Sollen Kontrollelemente angezeigt werden? "y" für Ja, "n" für Nein //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_showcontr var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n","y",buttons1); //Der 13. Parameter ist der Parameter, den wir für das Array mit den Linkinhalten //der Kontrollelemente festgelegt haben, im Beispiel ist das buttons1. //bei den Kontrollelementen hat man die Wahl zwischen Textlinks und grafischen //Buttons. In diesem Array werden dementsprechend entweder der Text für die //Textlinks oder der Pfad zum Button eingetragen. Findet das Script die Endung //.jpg, .gif oder .png, dann wird der Button angezeigt, ansonsten ein Textlink //die Reihenfolge der Kontrollelemente und damit auch der Elemente in diesem //Array ist: ZURÜCK - START - STOP - VOR //Den Standardwert für diesen Parameter setzt im Sriptfile der Parameter: def_contr var be_0= new be_slideshow("0",pics1,"slideshow",400,300,"#ccc",1,1,20,"n","n","y",buttons1); //Nochmals der komplette Aufruf.Im zweiten Schritt wird jetzt noch im BODY-Bereich der Seite an der gewünschten Stelle der DIV-Container eingefügt, der die Slideshow enthalten wird. Wichtig dabei ist die IDENTITY, in diesem Fall "slideshow" (id="slideshow"). Sie kann frei gewählt werden, im Script haben wir sie in diesem Beispiel bereits als Parameter gesetzt. Der Container kann beliebig positioniert und formatiert werden. In diesem Beispiel ist bereits jetzt eines der - im Beispiel in einem Unterordner namens "pics" abgelegten - Bilder eingebunden, mit denen das Script dann arbeitet. Das hat den Vorteil, dass Besuchern mit deaktiviertem JavaScript zumindest das statische Bild angezeigt wird. Für Besucher mit aktiviertem JavaScript hat der statische Inhalt des DIV-Containers keine Relevanz, da er beim Laden der Seite vom Script ersetzt wird. <div id="slideshow" style="margin:25px;"> <img src="pics/pic01a.jpg" style="width:400px;height:300px;" /> </div> Damit sind in der Seite selbst alle nötigen Vorbereitungen getroffen. be_slide.js - die ScriptdateiIm heruntergeladenen JavaScript-File "be_slide.js" sollte man jetzt die einzelnen Standardwerte setzen (diese sind in Beispiel 01 ausführlich erklärt).
Unbedingt erforderlich, damit die Verwendung mit verschiedenen Einstellungen wie hier beschrieben funktioniert ist aber, dass wir den im Script enthaltenen Standardaufruf löschen oder besser auskommentieren.
Dazu fügen wir in der letzten Zeile des Scripts:var be_0= new be_slideshow();am Beginn der Zeile die Kennzeichnung für einen einzeiligen Kommentar ein: //var be_0= new be_slideshow();Damit ist der Standardaufruf außer Funktion und unser oben ersteller Aufruf übernimmt.
Das wars. Viel Spass mit dem Script! |
| Zuletzt aktualisiert am Donnerstag, den 26. November 2009 um 18:49 Uhr |


Hallo, das script ist seh rschön, nur habe ich verschiedene Bildgrößen, so ist mein Problem das das bläd aussieht wenn die buttons einen abstabd vom Bild haben, wie kann ich machen das das script dieBildgröße automatisch erkennt?! geht das irgentwie??
Dnake Simon
Hallo Simon!
Nein, das Script skaliert größere Bilder auf die Maximalabmessungen, die Du in der Konfiguration festgelegt hast und versucht kleinere Bilder in dieser Fläche zu skalieren. Weitere Anpassungen werden nicht vorgenommen und das wird sich auch nicht ändern.
Trotzdem, verschieden große Bilder sind in der Regel kein unabwendbares Schicksal. Es gibt genug freie Bildbearbeitungssoftware wie z.B. GIMP mit der sich ausgezeichnet arbeiten lässt und schlußendlich bist immer noch Du der Webmaster und hast es in der Hand, die Bilder offline zu skalieren. Das Resultat auf der Seite ist bei gleich großen Bildern ohnehin das Beste und darauf kommt es schlußendlich ja an.
Also, anstatt einen Missstand programmatisch zu verwalten - kann man ihn ja auch einfach beseitigen. :)
Gruß
Andreas
Hey ich hab ein Problem, ich kenne mich mit java nicht aus und verstehe das nicht!! kann mir vllt jemand das vollständige script shcicken?? vllt verstehe ich es dann!! also von obe bis unten nichts auslassen, ich bin anfänger! lasst ruhig eure bilder drinnen sonst verpeil ich das womöglich auch noch danke!
Hallo Quirin!
Das Script verwendet die zIndex-Levels 1 und 2. Es sollte also reichen, wenn Du den Header Container auf 3 setzt.
Gruß
Andreas
PS.: Danke für den in Aussicht gestellten Link!
okay! Das ist hervorragend, also sowohl das script als auch der rest, bei eanderen seiten war oftmals werbung oder so dabei! Wenn du willst verlink ich dich, wenn meine hp onlin eis drauf! Aber nocheine frage ich hab das script jez mit meinen bildern voll gepumpt... aber jez hab ich ein Problem wenn man auf meiner seite hochscollt dann sieht man das Bild über dem Header.container, welcher eig immer im vordegrund bleiben sollte! Das muss ich ja mit dem z-index verstellen glaub ich oder? bzw was muss ich für einen z-index angeben?!
Vielen Dank Quirin
Hallo Quirin!
Welche Werbung? Du hast mit dem Download ein voll funktionsfähiges Beispiel. Schau es Dir an, schau Dir den Quelltext der Seite an, schau Dir das Script selbst an. Es gibt keine Werbung. Und da das Script nicht irgendwie verschlüsselt ist, lässt sich da weder etwas verstecken noch gibt es eine Funktion, die etwas nachlädt.
Also - viel Spaß damit!
Andreas
Oke gut das hab ich nun gefudnen, aber wie ist das mit werbung? WIrd dann dort stehen eine addresse von dir oder wie?? ist diese script werbe frei, wenn nicht wie viel werbung ist da bzw wo?!
LG Quirin
Hallo Roger Lemon aka Quirin Kraus!
Du kannst das gesamte Script auf der Seite "Slideshow" (http://www.bretteleben.de/lang-de/javascript/slideshow.html) herunterladen (Am Ende des Content, vor den Kommentaren). Das empfiehlt sich alleine schon deshalb, weil es schwierig ist, jemandem etwas zu schicken, von dem man keine Adresse hat. ;)
Betreffend der Bilder - das ZIP enthält ein funktionierendes Beispiel.
Gruß
Andreas
hi
möchte meinen Kommentar zurück ziehen, da es jetzt funktioniert....
aber leider funktioniert es noch nicht wenn ich mehrere slideshows einfüge
es läuft immer nur die erste die anderen wechseln nicht automatisch
Hallo Jenny!
In dem Fall würde ich das Problem einfach zurückstellen. Melde Dich sobald die Seite online ist, der Fehler ist dann sicher schnell gefunden.
Gruß
Andreas
Kann leider kein link zur seite machen, da diese noch im komplettaufbau ist und somit auf noch keinem server.
das komische ist ja bei der 2 slideshow wechseln die bilder nur beim neuladen des seite
Hallo Jenny!
Wenn Du einen Link zur Seite postest, schau ich mir gerne an woran es liegt.
Gruß
Andreas
hab ein großes Problem....
bei mir läuft diese slideshow nicht..
hab alles genauso gemacht wie in der Anleitung beschrieben, aber sie startet nicht sehe immer nur das erste bild
wer kann mir helfen...
Du kannst den Array mit den Bildern nicht nur im JavaScript-file sondern auch direkt in der Seite befüllen. Nachdem Deine Bilder in einer Datenbank liegen, nehme ich an, dass Dir auch eine serverseitige Scriptsprache (PHP, ASP, ...) zur Verfügung steht, mit der Du das realisieren kannst.
Nachdem Du es geschafft hast, die Bilder IN die Datenbank zu bekommen, bin ich guter Dinge, dass Du sie auch wieder AUS der Datenbank bekommst. Das Slideshow-Script ist in der Hinsicht als rein clientseitiges Script lediglich das ausführende Organ.
Gruß
Andreas
Zuerst möchte ich einmal sagen, echt tolles Skript!
Ich möchte das ganze gern in meine Website einbauen aber ich hab ein Problem. Kann man das ganze auch verwenden, wenn die Bilder in einer Datenbank sind?
Mfg Michael
Das liegt daran, dass der DIV-Container, der die Slideshow enthalten soll und das Script nicht im selben Fenster liegen. Vielleicht magst Du Dir ja auf selfhtml.org oder der Seite Deiner Wahl die entsprechenden Punkte durchlesen, bei denen es um das Ansprechen von Scripts im oder aus dem Parent-Frame geht.
Gruß
Andreas
herzlichen Dank für Deine Slideshow. Hat mir sehr viel Arbeit erspart.
Allerdings habe ich Probleme, die Slideshow auf einem Popup-Fenster laufen zu lassen. Es erscheint nur das Ersatzbild, das man im DIV angibt. Auch die Buttons erscheinen nicht.
Kannst Du mir da weiterhelfen?
Vielen Dank schon im Voraus.