Infinite TinyCarousel
Problem
Das TinyCarousel von Maarten Baijs ist ein einfaches und sehr leichtgewichtiges Slider-jQuery-Plugin für HTML-Inhalte, das mit CSS beliebig gestylt werden kann. Leider war es in Version 1.8 noch nicht möglich, es als echtes Karussell einzusetzen, bei dem sich an den letzten Block nahtlos der erste wieder anschließt. Darüberhinaus fehlte eine Pause-/Fortsetzen-Funktion, die hinsichtlich Barrierefreiheit gefordert wird, beim automatischen Weiterschalten der Inhalte.
Lösung
Das TinyCarousel wurde mittlerweile von Maarten Baijs vollständig überarbeitet und unterstützt diese Features! Bitte verwendet das originale TinyCarousel. Der Vollständigkeit halber findest Du nachfolgend "mein" Infinite TinyCarousel.
Das Infinite TinyCarousel erweitert TinyCarousel 1.8 um eine echte Karussell-Funktion. Außerdem können Pause-/Fortsetzen-Buttons verwendet werden, um die Animation beim automatischen Weiterschalten zu pausieren/fortzusetzen. Daneben sind mehrere Seitennavigationen für das direkte Anspringen eines Blocks erlaubt und die Klasse disable
wurde in disabled
umbenannt. Auch können Buttons im HTML zunächst mit dem Attribut disabled versehen werden, damit die Buttons bei ausgeschaltetem JavaScript vom Nutzer nicht als funktionstüchtig erachtet werden. Bei eingeschaltetem JavaScript werden diese dann aktiviert.
Einbindung
Um das Infinite TinyCarousel zu verwenden, müssen jQuery und jquery.tinycarousel.min.js eingebunden sein.
<script type="text/javascript" language="javascript" src="js/mootools.min.js"></script> <script type="text/javascript" language="javascript" src="js/thumbzoomer.min.js"></script>
Für ein Infinite TinyCarousel mit Seitennavigation und allen Funktionsbuttons ist folgendes HTML notwendig. Die Elemente sind dabei auch in anderer Reihenfolge zueinander platzierbar. Die Buttons können auch andere Elemente sein - hier zählt nur die CSS-Klasse.
<div class="carousel"> <!-- Seitennavigation --> <ul class="pager"> <li><a rel="0" class="pagenum" href="#"><span>Page 1</span></a></li> <li><a rel="1" class="pagenum" href="#"><span>Page 2</span></a></li> <li><a rel="2" class="pagenum" href="#"><span>Page 3</span></a></li> <li><a rel="3" class="pagenum" href="#"><span>Page 4</span></a></li> <li><a rel="4" class="pagenum" href="#"><span>Page 5</span></a></li> </ul> <!-- sichtbarer Inhaltsbereich --> <div class="viewport"> <ul class="overview"> <!-- Inhalte --> <li>Content 1</li> <li>Content 2</li> <li>Content 3</li> <li>Content 4</li> <li>Content 5</li> </ul> </div> <!-- Funktionsbuttons --> <button class="prev" disabled>< Previous</button> <button class="next" disabled>Next ></button> <button class="play" style="display: none;" disabled>|> Play</button> <button class="pause" disabled>|| Pause</button> </div>
Für ein horizontal ausgerichtetes Infinite TinyCarousel ist mindestens folgendes CSS Voraussetzung.
.viewport { height: 300px; /* Höhe des sichtbaren Bereichs */ overflow: hidden; position: relative; width: 400px; /* Breite des sichtbaren Bereichs */ } .overview { padding: 0; position: absolute; overflow: hidden; } .viewport li { display: block; float: left; height: 300px; /* Höhe des sichtbaren Bereichs */ width: 400px; /* Breite des sichtbaren Bereichs */ }
Nun muss das Plugin nur noch mit der gewünschten Konfiguration aufgerufen werden. Nachfolgend beispielsweise mit Seitennavigation, automatischer Weiterschaltung, Pause-/Fortsetzen-Funktionalität und echtem Karussell-Effekt.
<script type="text/javascript"> $(document).ready(function(){ $('.carousel').tinycarousel({pager: true, interval: true, playpause: true, infinite: true}); }); </script>
Rudimentäres Demo ansehen
Erweitertes Demo ansehen
Eine ausführliche Dokumentation mit noch mehr Beispielen für das ursprüngliche TinyCarousel gibt es auf http://www.baijs.nl/tinycarousel/.
Konfiguration
Folgende neue Optionen können dem Infinite TinyCarousel als Parameter mitgegeben werden.
Option | Beschreibung | Default-Wert |
---|---|---|
infinite |
Wenn true , wird nach Erreichen des letzten Blockes nahtlos der erste angefügt. |
false |
playpause |
Wenn true , kann das automatische Weiterschalten (interval: true ) pausiert/fortgesetzt werden. |
true |
toggleplaypause |
Wenn true , wird immer entweder der Pause- oder der Fortsetzen-Button angezeigt. Wenn false bleiben beide sichtbar, aber der jeweils andere Button erhält die Klasse disabled . |
true |
Der Vollständigkeit halber hier die übrigen Optionen des originalen TinyCarousels:
Option | Beschreibung | Default-Wert |
---|---|---|
start |
Die Nummer des Elements, das beim Start angezeigt werden soll. | 1 |
display |
Die Anzahl der Elemente, die als Block mit einem Mal verschoben werden. Wenn infinite: true ist, sollte display: 1 sein. |
1 |
axis |
Die Richtung der Bewegung: 'x' für horizontal, 'y' für vertikal. |
'x' |
controls |
Wenn true , Anzeige der Steuerungs-Buttons (zurück, weiter, pausieren, fortsetzen), sofern im HTML vorhanden. |
true |
pager |
Wenn true , Anzeige der Seitennavigation zur Ansteuerung einzelner Blöcke. |
false |
interval |
Wenn true , automatisches Weiterschalten der Blöcke. |
false |
intervaltime |
Anzeigedauer eines Blocks bei automatischem Weiterschalten (interval: true ) in Millisekunden. |
3000 |
rewind |
Wenn true , Weiterschalten der Blöcke in umgekehrter Reihenfolge bei automatischem Weiterschalten (interval: true ) bei Erreichen des letzten Blockes. Diese Option hat keine Auswirkung, wenn infinite: false ist. |
false |
animation |
Wenn true , Animation (Sliding) des Weiterschaltens der Blöcke. |
true |
duration |
Die Geschwindigkeit der Animation in Millisekunden. | 1000 |
callback |
Callback-Funktion, die nach jedem Weiterschalten aufgerufen wird. | null |
Downloads
- InfiniteTinyCarousel-Source als JS-Datei (YUI-komprimiert, ca. 4 KB)
- InfiniteTinyCarousel und Demo als ZIP (ca. 148 KB)
Mehr Infos
- Maarten Baijs TinyCarousel