Über mich

Startseite arrow Tipps & Tricks arrow Bilder mit AJAX noch eleganter vergrößern

Bilder mit AJAX noch eleganter vergrößern

Donnerstag, 18. Dezember 2008
Geschrieben von Armin Vieweg
Ein Script namens Lighbox 2 war Mittelpunkt eines weit über ein Jahr altem Beitrag bei Professor Web. Heute möchte ich ein anderes Script vorstellen, dass noch mehr kann.

"Highslide JS" heißt das Script über das dieser Artikel hier berichtet. Es ist ein JavaScript das mit AJAX Technologie verschiedenste Möglichkeiten bietet die Inhalte einer Website noch ansprechender aufzubereiten, als in meinem alten Beitrag beschrieben.

Der Ursprung dieses Scriptes, dessen Programmierer aus Norwegen stammt, liegt ganz klar bei der Lighbox-Funktionalität - also dem Nachladen von Bildern und deren Vergrößerung.



Mehr als nur Bilder vergrößern
Das Script kann mehr. Schon auf der Startseite zeigt der Entwickler die ganze Flexibilität seiner Software. In dem aufpoppenden Fenster können nicht nur vergrößerte Bilder angezeigt werden, sondern beliebige HTML-Inhalte oder spezielle Funktionen wie eine Navigation um zum nächsten Bild zu springen oder das "Popup-Fenster" zu verschieben.

Highslide Popup Beispiel - Bild mit Untertitel

Man kann über die Einstellungen das bloße Bild vergrößert darstellen oder einen Untertitel anzeigen. Wobei man diesen beliebig positionieren kann. Dieser Untertitel wird dann aus dem ALT-Tag des Ursprungsbildes geladen oder aus dem Titel des Links. Man kann diesen Text auch manuell vergeben. Das alles kann flexibel verändert werden.


HTML-Inhalte in Highslide
Highslide Beispiel - HTML-InhaltDie Popups lassen sich mit normalem HTML-Inhalt befüllen. Dabei ist es egal, ob sich dieser in einem versteckten DIV auf der Seite befindet oder in einer anderen HTML-Datei, die dann asynchron nachgeladen wird.

Sogar die Höhe der Inhaltsbox lässt sich dynamisch einstellen. So passt sich die Höhe dem Inhalt an - besonders praktisch, wenn man in der Box dynamische JavaScript-Funktionen verwendet.



Weitere Elemente
Flash Filme und iFrames die externe Inhalte darstellen sind ebenfalls möglich abzubilden.

Der große Vorteil daran ist, dass die nachträglich aufpoppenden Inhalte nicht im ursprünglichen Content zu sehen sind. Möchte sich jemand die drei Bilder im aktuellen Content nicht in einer super Auflösung anschauen muss er das auch nicht, er hat jedoch die Möglichkeit dies mit einem Klick zu tun.


Skins
Diese Box lässt sich optisch nach den eigenen Wünschen anpassen. Man kann selbst Skins erstellen oder die Standard-Skins verwenden, die so neutral gestaltet wurden, dass sie sich auf praktisch jede Website passen.



Die Einbindung
Um Highslide in die eigene Website zu integrieren gibt es 4 verschiedene JavaScript-Dateien von der man aber nur eine, je nach gewünschtem Funktionsumfang, benötigt.
  • highslide.js | 23,7 kB
    Hier sind die fundamentalen Funktionen integriert die man für das Vergrößern von Bildern benötigt

  • highslide-with-gallery.js | 32,3 kB
    Diese Datei enthält zusätzlich noch Funktionen um Bilder wie eine Slideshow nacheinander abspielen zu können.

  • highslide-with-html.hs | 32,3 kB
    Hier sind Funktionen enthalten die für die Darstellung von HTML-Inhalten und dem dynamischen Nachladen von HTML-Dateien benötigt wird.

  • highslide-full.js | 42,4 kB
    Ist eine Variante in der alle Befehle vorhanden sind.
Diese angegebenen Dateigrößen können je nach Version von Highslide variieren. Da sehr oft neue Versionen herauskommen, die neue Funktionen und Bugfixes beinhalten kann es schnell passieren, dass die hier stehenden Werte nicht mehr aktuell sind. Große Differenzen sollten aber auszuschließen sein.

Die Dateigrößen sind im Übrigen die Angaben der komprimierten Dateien. Man erhält zudem noch vier weitere JS-Dateien, die unkomprimiert sind und so teilweise doppelte Datei-Größen verursachen.


Abgesehen von den JS-Dateien müssen noch Bilder hochgeladen werden, die das Skin darstellen, und eine CSS-Datei. Die Inhalte der CSS müssen aber nicht gezwungenermaßen in einer eigenen Datei stehen. Es reicht, wenn man deren Inhalt in die eigene, aktuelle CSS-Datei einfügt.

Sind diese Voraussetzungen erfüllt, kann man in Head-Bereich nun damit beginnen die Standardeinstellungen für das Öffnen der Highslides zu definieren. Das sieht dann z.B. so aus:

<script type="text/javascript">
  hs.graphicsDir = 'highslide/graphics/';
  hs.showCredits = false;
  hs.allowMultipleInstances = false;
</script>


Das graphicsDir gibt an wo unsere Skins liegen. Da wir kein explizites Skin gewählt haben wir ein weißes und eckiges Standardskin genommen. Mit showCredits = false wird der Hinweis "Powered by Highslide JS" deaktiviert. Keine Sorge, auch in der kostenlosen Variante für nicht-kommerzielle Zwecke darf dieser Hinweis ohne Bedenken entfernt werden.

Mit der letzten Zeile im JavaScript allowMultipleInstances = false wird angewiesen, dass nur ein Bild gleichzeitig geöffnet werden darf. Ist bereits ein Bild offen, wird das automatisch geschlossen sobald man ein anderes öffnet. Man kann dem Besucher es jedoch auch ermöglichen so viele Bilder wie er möchte zu öffnen. Da er das Fenster verschieben darf, kann er so z.B. mehrere Bilder miteinander vergleichen.

Damit nicht alle, sondern nur ausgewählte Bilder mit dieser Funktion ausgestattet werden muss dem Link, dass im href das vergrößerte Bild beinhaltet noch die Klasse "highslide" und das JS-Event onclick geben werden. So sieht es dann im Code aus:

<a href="gross.jpg" class="highslide" onclick="return hs.expand(this)">
  <img src="klein.jpg" alt="Dies ist der ALT-Tag">
</a>


Wenn wir im übrigens möchten, dass in der vergrößerten Version ein Untertitel erscheint, der sich aus dem ALT-Tag des kleinen Bildes zusammensetzt, dann reicht eine kleine, weitere Zeile Code im JavaScript im Head:

hs.captionEval = 'this.thumb.alt';




Lizenz und Kosten
Das Script ist für den nicht-kommerziellen Bereich kostenfrei. Alle anderen müssen eine kleine Gebühr bezahlen, wobei eine Single-Website-Lizenz gut 20 Euro (29 USD) und eine uneingeschränkte Lizenz, die man beliebig oft verwenden darf knapp 128 Euro (179 USD) kostet.

Für das Geld erhält man Zugriff auf eine sehr gute und ausführliche Dokumentation und API in der alle möglichen Befehle und Einstellungsvarianten ausführlich und mit Beispielen (allerdings Alles auf englisch) erklärt werden - und wenn man gar nicht mehr weiter weiß, gibt es auch ein Support-Forum in dem der Entwickler des Scripts ebenfalls fleißig Posts am beantworten ist. Er versteht übrigens Deutsch, kann es nur nicht schreiben, daher wären Englischkenntnisse von Vorteil :)



Fazit
Mein Fazit ist die Empfehlung, dieses Script unbedingt mal anzuschauen und auszuprobieren. Eine Seite habe ich sogar mal fast ausschließlich damit umgesetzt: Schwan-Design (Auf die Logos rechts klicken).

Das Script erleichtert einem die Arbeit sehr und ermöglicht neue Funktionen, die dem Besucher das Surfen einfacher und komfortabler gestalten. Der Preis für eine unbegrenzte Lizenz ist ebenfalls okay - und ich bin sicher, dass dieses Script es sogar in die nächste Professor Web Version schaffen wird um auch hier mehr Komfort in der Darstellung der Inhalte reinzubringen.


Link

AJAX-Script: Highslide JS




  Kommentare (2)
 1 Geschrieben von: Torben, am 09.11.2010 um 13:35
Was hat das mit AJAX zu tun? 
 
AJAX ist lediglich die Möglichkeit, in JavaScript asynchrone Web-Requests zu senden und den Response zu verarbeiten. 
 
Das hier ist pures JavaScript, kein AJAX.
 2 Geschrieben von: Armin, am 09.11.2010 um 13:41
Das hier vorgestellte Script beinhaltet auch die Verwendung von AJAX. Das Vergrößern von Bildern hat natürlich nicht viel mit AJAX zu tun, das stimmt. 
 
Gruß 
Armin
Letzte Aktualisierung ( Mittwoch, 17. Dezember 2008 )
 
< Zurück   Weiter >