Javascript

Touchscreens per Geste steuern mit Hammer.js

27. April 2012
von

Wer seine Website für Smartphones und Tablets fit machen möchte, wird um Gestensteuerung nicht herum kommen. Mit Hammer.js gibt es eine kleine JavaScript-Bibliothek, mit der sich beliebige HTML-Elemente um Gesten erweitern lassen. Hammer.js ist keine Konkurrenz für ausgewachsene Frameworks, dafür aber wesentlich einfacher zu verwenden.

Hammer.js einbinden

Zunächst muss Hammer.js in die Website eingebunden werden. Die Datei kann entweder heruntergeladen und auf dem eigenen Webspace platziert oder direkt aus dem GitHub-Repository der Entwickler verlinkt werden:

<script src="http://eightmedia.github.com/hammer.js/hammer.js"></script>

Anschließend wird eine Instanz der Hammer-Funktion auf ein HTML-Element angewendet:

var hammer = new Hammer(document.getElementById("element"));


Hammer.js

Über Hammer.js lassen sich verschiedene Gesten auf Elemente anwenden. Neben einfachem und doppeltem Berühren des Displays („Tap“ und „Double Tap“), gibt es langes Gedrückthalten („Hold“) und Bewegung über das Display („Drag“). Darüber hinaus lässt sich als Geste auch das Auseinander- und Zusammenziehen von zwei Fingern auf dem Display („Transform“) nutzen.

Auf Gesten reagieren

Auf jede Geste, die auf ein Element angewendet wird, lässt sich eine Funktion legen. So könnte man auf eine einfache Bewegungsgeste wie folgt reagieren:

hammer.ondrag = function(geste) {
  document.getElementById("ausgabe").firstChild.nodeValue = geste.distance;
}

Wird auf das Element „element“ eine Bewegungsgeste ausgeübt, wird die angegebene Funktion ausgeführt. Je nach Art der Geste gibt die Funktion Werte zurück, die sich für Animationen wie einen Bilderslide verwenden lassen. Das Objekt „distance“ gibt die über die Bewegung zurückgelegte Entfernung in Pixel an – also die Strecke, die der Finger auf dem Display zurückgelegt hat.

Für die Bewegungsgeste lässt sich auch die Richtung („direction“) der Bewegung (oben, unten, rechts oder links), der Winkel („angle“)  sowie die Entfernung auf der X- und Y-Achse („distanceX“ und „distanceY“) abfragen .

Hammer.js konfigurieren

Eine Instanz von Hammer.js kann individuell konfiguriert werden. Es gibt verschiedene Einstellungen, mit denen unter anderem die Definition einer Mindestdistanz möglich ist, die über eine Bewegung („Drag“) überwunden werden muss:

var hammer = new Hammer(document.getElementById("element"), { drag_min_distance: 100 });

Im Beispiel muss eine Bewegungsgeste über mindestens 100 Pixel stattfinden, damit die über „ondrag“ angegebene Funktion ausgeführt wird.

Fazit: Mit Hammer.js lassen sich sehr einfach Gesten anwenden und individuell einstellen. So können beispielsweise Slide-Navigationen oder Zoom-Funktionen realisiert werden. Hammer.js sollte im Werkzeugkasten eines Developers für mobile Webapps nicht fehlen.

(dpe)

Denis Potschien

Seit 2005 ist er freiberuflich als Kommunikationsdesigner tätig, seit Anfang 2010 im Kreativkonsulat in Iserlohn, einem Büro für Gestaltung und Kommunikation. Dort betreut er kleine und mittelständische Unternehmen ebenso wie kommunale Körperschaften und Organisationen aus Südwestfalen und dem Ruhrgebiet.

Ein Kommentar? Schön!

Wir freuen uns immer über Leser, die durch nützliche und konstruktive Beiträge zum Thema eine Diskussion anstoßen oder den Artikel mit weiteren Informationen anreichern. Alle Kommentare werden in diesem Sinne moderiert. Zum Kommentar-Fairplay gehört für uns auch der Einsatz von rel="nofollow". Bitte verwenden Sie zudem als Namen weder eine Domain noch ein spamverdächtiges Wort. Vielen Dank!