Only swipeone is working with jGestures

前端 未结 7 2414
抹茶落季
抹茶落季 2021-02-10 09:56

I\'m trying to implement touch evens with jGestures. swipeone works fine but anything else (swipeleft, swiperight etc) is not firing.

7条回答
  •  日久生厌
    2021-02-10 10:32

    I'm using Willian El-Turk's solution like this:

    // jGestures http://stackoverflow.com/a/14403116/796538
    $('.slides').bind('swipeone', function (event, obj) {
       var direction=obj.description.split(":")[2]
       if (direction=="left"){
            //alert("left");
       } else if (direction=="right"){
            //alert("right");
       }
    });
    

    Excellent solution, except because it executes as soon as there's movement left to right it's really sensitive even with more of a vertical swipe. it'd be great to have a minimum swipe distance on the x axis. Something like:

    if (direction=="left" && distance>=50px){ 
    

    Except i'm not sure how... Please feel free to edit this !

    Edit - You can check distance (x axis) like this, it works for me :

    $('.slides').bind('swipeone', function (event, obj) {
    
        var xMovement = Math.abs(obj.delta[0].lastX);
        var direction=obj.description.split(":")[2]
    
        //I think 75 treshold is good enough. You can change this.
    
        if(xMovement >= 75) {
            //continue to event
            //ONLY x axis swipe here. (left-right)
    
            if (direction=="left"){
                //alert("left");
            } else if (direction=="right"){
                //alert("right");
            }
        }
    }
    

提交回复
热议问题