vous pouvez utiliser cette fonction,:
$(window).load(function(){
detectswipe('btnid',myfunc);
});
function detectswipe(el,func) {
swipe_det = new Object();
swipe_det.sX = 0; swipe_det.sY = 0; swipe_det.eX = 0; swipe_det.eY = 0;
var min_x = 100; //min x swipe for horizontal swipe
var max_x = 100; //max x difference for vertical swipe
var min_y = 100; //min y swipe for vertical swipe
var max_y = 100; //max y difference for horizontal swipe
var direc = "";
ele = document.getElementById(el);
if(ele==null){
return;
}
ele.addEventListener('touchstart',function(e){
var t = e.touches[0];
swipe_det.sX = t.screenX;
swipe_det.sY = t.screenY;
},false);
ele.addEventListener('touchmove',function(e){
var t = e.touches[0];
swipe_det.eX = t.screenX;
swipe_det.eY = t.screenY;
},false);
ele.addEventListener('touchend',function(e){
if ((((swipe_det.eX - min_x > swipe_det.sX) || (swipe_det.eX + min_x < swipe_det.sX)) && ((swipe_det.eY < swipe_det.sY + max_y) && (swipe_det.sY > swipe_det.eY - max_y) && (swipe_det.eX > 0)))) {
if(swipe_det.eX > swipe_det.sX) direc = "right";
else direc = "left";
}
else if ((((swipe_det.eY - min_y > swipe_det.sY) || (swipe_det.eY + min_y < swipe_det.sY)) && ((swipe_det.eX < swipe_det.sX + max_x) && (swipe_det.sX > swipe_det.eX - max_x) && (swipe_det.eY > 0)))) {
if(swipe_det.eY > swipe_det.sY) direc = "down";
else direc = "up";
}
if (direc != "") {
if(typeof func == 'function') func(el,direc);
}
direc = "";
swipe_det.sX = 0; swipe_det.sY = 0; swipe_det.eX = 0; swipe_det.eY = 0;
},false);
}
function myfunc(el,d){
if(d=="up"){
console.log("do Some Work!!");//or any function which you want to call on swipe up/down(matter of prespective,change "up" to down if you want the other way).
}
}
Il détecte la direction swipe par touchevents. J'ai utilisé cette fonction dans mon projet et cela fonctionne parfaitement sur tous les périphériques tactiles :)
Bien sûr, la plupart des bibliothèques pour mobile incluent des événements de type "glisser vers le haut", utilisez une bibliothèque ou déterminez comment elles fonctionnent. – adeneo
@adeneo, pourriez-vous recommander une source? (préférable de ne pas jQuery mobile) –