Startseite Javascript Slideshow - Slideshow Beispiel 03
2010-08-01
Hauptmenü
externe Links
Meist gelesen
Support

Wenn Sie die Erweiterungen und Scripts auf diesen Seiten nützlich finden, freue ich mich über Ihre Unterstützung. Danke!

Betrag: 

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 Webseite

Der 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.
Andernfalls ist der Pfad entsprechend anzupassen.

Und jetzt ergänzen wir diesen Eintrag um unsere Angaben und den eigentlichen Aufruf:

 
<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 Scriptdatei

Im 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
 
Kommentare (25)
Tolles Skrip
25 Montag, den 19. April 2010 um 23:34 Uhr
Ismail Demir

Hallo, danke für diesen Tollen skript.


Ich hätte aber eine kleine Frage, was muss ich machen, damit die Bilder einen Timestamp bekommen, so dass ich eine Andlosschleife mit dynamische Bildern machen kann?


Ich verwende diesen skript um 4 verschiedene webcams in eine Seite darzustellen. Die bilder laufen in eine Schleife. Also die heißen immer bild1.jpg-bild10.jpg. Wenn ich eine ?Timestamp am ende einfüge, werden die bilder immer neu runtergeladen, wenn nicht, werden sie aus dem cache geladen. Es gibt zwar html tags, die das unterbinden sollen, funktioniert aber nicht bei jeder browser.


Danke nochmal für diesen tolean Skript.

@Ismail Demir
Dienstag, den 20. April 2010 um 19:35 Uhr
A. Berger

Hallo Ismail!

Um das zu realisieren müsstest DU entweder das Script umschreiben (würde ich eher nicht machen) oder auf der Seite den Array, der die Bilder enthält dynamisch generieren. In diese Richtung würde ich mich online mal umsehen.

In der einfachsten Form wäre das dann ein Konstrukt in der Art von:

var mytime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))/1000);
var mypic1= 'pics/pic01.jpg?t='+mytime;
var mypic2= 'pics/pic02.jpg?t='+mytime;
... und so weiter


var pics=new Array (mypic1, mypic2, mypic3, ... und so weiter);

Alles ungetestet!

Gruß
Andreas

anzuzeigende Bilder anstatt Buttons
24 Dienstag, den 13. April 2010 um 16:09 Uhr
Micha

Hallo!

ich war Ewigkeiten auf der Suche nach so einem Script. Sensationell! Vielen Dank dafür, dass du so etwas online stellst. Viele scripte verwenden eine MySQL-DB im Hintergrund, dass will ich nicht. Zumindest noch nicht, da kommt dein Script wie gerufen!

Eine Frage/einen Wunsch hätte ich aber:
ist es möglich anstatt der Bedienelemente die Slideshow-Bilder in Form einer Minigalerie anzeigen zu lassen?

So das der Besucher per Click auf das Bild in der Minigalerie dieses angezeigt bekommt?
Die Minigalerie vielleicht noch mit Pfeil nach links und pfeil nach rechts um zu scrollen sofern die Slideshow mehr Bilder hat als in der Minigalerie unter dem Bild angezeigt werden kann.
Das ist noch etwas was mir wirklich abgeht, eventuell hast du ja mal zu viel Zeit :)

Grüße,
Micha


 

@Micha
Dienstag, den 13. April 2010 um 21:22 Uhr
A. Berger

Hallo Micha!

Das Script wird sich schon noch weiterentwickeln, aber die bislang reine Slideshow in eine Galerie mit Slideshowfunktion umzubauen habe ich nicht vor. Wenn Du Dich aber mal bei hotscripts.com oder dem Scriptarchiv Deines Vertrauens umsiehst, es gibt durchaus auch solche Scripts.

Gruß
Andreas

@Markus
23 Samstag, den 06. März 2010 um 20:06 Uhr
A. Berger
Hallo Markus!

Ehrlich gesagt gar nicht, denn dafür ist die Slideshow nicht gedacht. Weder verzerrt sie Bilder (weil das in der Regel witzlos und nicht gewünscht ist) noch werden Bilder vergrößert (weil das nahezu immer qualitativ schlechte Resultate bringt).
Wenn Du Bilder mit exakt identen Abmessungen darstellen möchtest, dann ist es immer noch am einfachsten und effizientesten Bilder mit identen Abmessungen zu verwenden.

Gruß
Andreas
Bilder zentrieren
22 Freitag, den 05. März 2010 um 16:05 Uhr
Markus
Hallo Andreas!

Danke für dieses tolle Script! Einfach toll, dass Du das zur Verfügung stellst!

Ich möchte fragen, wie es mir möglich ist, mehrere Bilder, unabhängig von Ihrer aktuellen Größe nur mit einem exakten Format z.b. 360x240px (quer bzw. auch hoch) auszugeben? Wie sollte das Slideshow-Skript dann aussehen? und wie schaffe ich es, das jedes Bild dann entsprechend zentriert ist?

Danke für Deine Hilfe!

Liebe Grüße aus Wien
Markus
@Dennis Stockton
21 Freitag, den 12. Februar 2010 um 19:04 Uhr
A. Berger
Hi Dennis!

Either scale down the used image files or decrease the value set for the steps within the fading. Or do both. These two values are the counting criteria when it comes to CPU load, which differs from browser to browser.

Best regards
Andreas
problems running script in IE8
20 Donnerstag, den 11. Februar 2010 um 23:42 Uhr
Dennis Stockton
Andreas, First thanks for providing a great script I'll drop something in the donation box soon!

I used the script to place 4 seperate slide shows on a page and it works great in Firefox and even IE7 but when I run it using IE8 the image transitions slow to a crawl and my cpu usage jumps up (and stays) at 98% until I move from the page. Any Ideas on what might be causing the problem?

Thanks,

Dennis
danke!
19 Dienstag, den 24. November 2009 um 07:46 Uhr
mariachi
super. vielen dank für die antwort. dann versuche ich mich nun mal schlau zu machen wie die arbeit mit cookies funktioniert. kann mir das noch nicht so recht vorstellen.
@mariachi
18 Montag, den 23. November 2009 um 20:34 Uhr
A. Berger
Hallo mariachi!

Du müsstest das Script dahingehend modifizieren, dass bei jedem Bildwechsel der aktuelle Stand in einen Cookie geschrieben wird und beim Laden der Seite jedesmal dieser Cookie - soweit vorhanden - ausgelesen und der aktuelle Stand berücksichtigt wird.

Gruß
Andreas
slideshow nicht neu starten bei seitenwechsel
17 Montag, den 23. November 2009 um 07:42 Uhr
mariachi
ich konnte die die slideshow trotz meinen wenigen kenntnissen einbauen. das hat super geklappt. vielen dank!
nun wäre es aber toll wenn die slideshow beim seitenwechseln nicht neu starten würde sondern weiter läuft. gitb es da eine möglichkeit und wie müsste ich da vorgehen?
@peter
16 Samstag, den 14. November 2009 um 22:49 Uhr
A. Berger
Hallo Peter!

Ich bin absolut kein Freund von jedweder Art von Light-/Grey-/Fat-/Black-/Fancy- oder sonstiger Box. Ich mag es, wenn die Bilder "im Rahmen" (und zwar im Rahmen meines Seitenlayouts) bleiben. Demzufolge kann ich damit leider nicht dienen.

Gruß
Andreas
Deutsch
Panoramic Image Viewer
AddThis Social Bookmark Button
Wer ist online
Wir haben 29 Gäste online
Neueste Beiträge