| JavaScript: Slideshow Beispiel03 |
| Geschrieben von: Andreas Berger |
| Sonntag, den 01. März 2009 um 12:31 Uhr |
|
Das dritte Beispiel erweitert die in den ersten beiden Beispielen gezeigten Möglichkeiten nun noch um die Darstellung mehrerer Slideshows auf einer Seite. Die Annahme: Auf einer Seite sollen mehrere (im Beispiel 2) Slideshows 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. Wie im Beispiel 02 möchten wir das Script auch hier mit verschiedenen Slideshows ansprechen. Nur diesmal auf der selben Seite. Dazu müssen wir im HEAD-Bereich der Seite nicht nur das Script verlinken, sondern auch die jeweiligen Einstellungen für unsere Slideshows 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,"slideshow1",400,300,"#ccc",1,1,20,"n","n","y",buttons1); var pics2=new Array ('pics/pic02a.jpg', 'pics/pic02b.jpg', 'pics/pic02c.jpg'); var be_1= new be_slideshow("1",pics2,"slideshow2",400,300,"#ccc",1,1,20,"y","n","n"); </script>Die einzelnen Schritte: <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 erste 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 ruft die erste Slideshow auf. //Eine genaue Beschreibung findet sich bei Beispiel 02 var pics2=new Array ('pics/pic02a.jpg', 'pics/pic02b.jpg', 'pics/pic02c.jpg'); //In diesem Array werden die Bilder angelegt, die die zweite Slideshow verwenden soll. var be_1= new be_slideshow("1",pics2,"slideshow2",400,300,"#ccc",1,1,20,"y","n","n"); //Diese Zeile ruft die zweite Slideshow auf. //Eine genaue Beschreibung findet sich bei Beispiel 02 //Die zweite Slideshow verwendet keine Kontrollelemente, deshalb auch kein Array dafür. //Wollten wir Kontrollelemente anzeigen, dann könnten wir natürlich auch die Buttons //der ersten Slideshow verwenden und diesen Array als letzten Parameter angeben. //Neu ist hier die Bezeichnung be_1 und der Wert des ersten Parameters "1". //Diese verwenden wir in aufsteigender Reihenfolge. Eine dritte Slideshow auf //der selben Seite hätte hier die Variablenbezeichnung be_2 und als Wert des //ersten Parameters "2" ... und so weiter. </script> //Die letzte Zeile schließt den SCRIPT-Tag.Im BODY-Bereich der Seite werden diesmal nun zwei DIV-Container eingefügt, die die Slideshows enthalten werden. Wichtig wieder die IDENTITY, in diesem Fall "slideshow1" (id="slideshow1") und "slideshow2" (id="slideshow2"). Die Container können beliebig positioniert und formatiert werden. Auch in diesem Beispiel binden wir statisch je eins der Bilder ein. <div id="slideshow1" style="margin:25px;"> <img src="pics/pic01a.jpg" style="width:400px;height:300px;" /> </div> <div id="slideshow2" style="margin:25px;"> <img src="pics/pic02a.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 |


sehr cooles script. wäre noch cool, wenn man auf das bild kommt, dass es dann in groß erscheint, bzw. über fancybox/lightbox groß wird.
Ja könnte man - werde ich auch - nur dazu gekommen bin ich noch nicht :)
Gruß
Andreas
Das Script gefällt mir sehr gut, sehr übersichtlich aufgebaut und vor allem die Dokumentation.
Aber eines Vermisse ich sehr, könnte man nicht die Bilder mit einer neuen Variable verlinken?
Mit klick aufs Bild z.b.:
var link1=new Array ('myDomain.com/pics/pic01a.jpg', 'yourDomain.com/pics/pic01b.jpg');
mfg Andi
danke für das fixe lösen meines problems..
habe gerade gelesen, dass jmd anderes ebenfalls per klick aufs bild navigieren wollte. gib ihm doch einfach mein teil, weil jetzt funktionierts..
(war übrigens klar, dass wieder mal an meiner eigenen unachtsamkeit gelegen hat.)
danke dir
jens
Du übermittelst beim Aufruf der Scripts jeder Slideshow als ersten Parameter den Wert "0", also die selbe Identity. Wenn Du Dir das Beispiel auf dieser Seite ansiehst - der Parameter wird hochgezählt. Probier das mal.
Gruß
Andreas
vielen dank für das skript. macht einen sehr guten eindruck ;)
mein versuch ist es eine ganz simple slideshow zu basteln, ohne play und überblendung. klickt man auf das bild, kommt das nächste dran. dazu hab ich einfach das script von den buttons um das img tag gelegt. das klappt auch, aber immer nur beim ersten slide.
klicke ich auf das bild in der nächsten slideshow, wechsel ich ebenfalls den ersten slide.
deswegen habe ich extra mal die controls hinzu gefügt, da passiert aber genau das selbe. die controller reagieren nur auf slideshow 1..?
für jede hilfe wäre ich dankbar.
http://313130.net/clients/atzelot/index4.htm
Open the JavaScript file be_slide.js with a text editor. Find the lines 199 to 203 near the end. They all start with:
myhtml+="
in line 199 remove the part: text-align:right;
in line 200 replace: style='text-decoration:none;'
with: style='text-decoration:none; float:left;'
in line 201 add two slashes at the beginning of the line to make it a comment: //
in line 202 again, make it a comment with two initial slashes: //
in line 203 replace: style='text-decoration:none;'
with: style='text-decoration:none; float:right;'
Best regards
Andreas
I was wondering how to move the controls, i'd like to put the previous image button to the left of the image and the next button to the right of the image,and then also to remove fully the other two buttons (start and stop) I can't really figure out a way of doing this maybe its not possible...
The possibility to link single images is on my todo-list. For the moment - and as long as you don´t show controls - you could include the whole div-container within a link. Not very elegant, but works.
Kind regards
Andreas
This sample explains how to use 1 scriptfile for more than one slideshow on 1 page.
Sample 02 shows how to use 1 scriptfile for more than one slideshow on different pages.
What you want to achieve should be covered by this samples. If you have a specific problem, maybe you could provide a link to the page(s) and I will have a look at it.
Best regards
Andreas Berger