Hallo,
ich benötige zum "Weiterblättern" in einem scrollbaren Bereich eine Wischgeste zum Weiter- oder Zurückblättern.
Gefunden habe ich hierzu aber nichts - die Apple-Doku ist mal wieder wenig aussagekräfigt:
http://developer.apple.com/library/safari/#documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/InteractiveVisualEffects/InteractiveVisualEffects.html#//apple_ref/doc/uid/TP40008032-CH3-SW3
Da wird zwar gesagt, dass es "gestures" gibt, aber nicht welche und wie man diese verwendet.
Ich hab' mir jetzt mit folgendem selbst geholfen:
var touchStartX = 0;
var touchEndX = 0;
var touchMinDistance = (($('.scroller ul.img>li>a').width()+15)*0.75);
$('.scroller').bind(
'touchstart',
function(e) {
var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
touchStartX = touch.pageX;
}
);
$('.scroller').bind(
'touchmove',
function(e) {
var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
touchEndX = touch.pageX;
}
);
$('.scroller').bind(
'touchend',
function(e) {
$('.slider').slider('value', ($('.slider').slider('value') + Math.floor((touchStartX-touchEndX)/touchMinDistance)));
}
);
Funktioniert so ansich recht gut (auf Android und iOS-Geräten) - alledings wird eben nur der Enfangs- und Endpunkt der "Geste" verglichen und dann - wenn die differenz groß genug ist, wird eben die Anzahl an Schritten in eine Richtung verschoben.
Wenn jemand jetzt ein bisschen "Herumkreiselt" oder ein liegendes U zieht, wird das natürlich auch als "wischen" gewertet.
Natürlich könnte man jetzt alle Zwischenstationen vergleichen und schauen, ob der Winkel zwischen den Punkten ähnlich ist und schauen ob die Richtung nicht weit aus der Horizontalen abweicht, aber das ist relativ aufwändig.
Die Frage also: gibts hierfür eine schlauere Methode das zu lösen - oder ein fertiges Plugin. Also etwas das Gesten für "horziontales Wischen" usw erkennt.
Danke im voraus.