スライドアップページとページ内スライドscroll

2957 ワード

転載先:https://segmentfault.com/q/1010000002930007
jsのtouchイベントとブラウザのスライドの衝突はどうしますか?
zeptoはtapイベントを提供し、具体的な原理は多分
   touchend   ,       touchmove  

次のコードは私が書きたいだけで、zeptoソースコードではありません.
$.fn.tap = function(fun){
    var x,y,X,Y,moved ;

        element.addEventListener('touchstart',function(event){
            moved = false ; // moved        
            x = event.targetTouches[0].screenX ;
            y = event.targetTouches[0].screenY ;
        });
        element.addEventListener('touchmove',function(event){
            if(moved) return
            X = event.targetTouches[0].screenX ;
            Y = event.targetTouches[0].screenY ;
            if(X-x != 0 || Y-y !=0) moved = true
        });
        element.addEventListener('touchend',function(event){
            if(!moved) //          
            {
                fun();
            }
        })
    }

まさかあなたはtouchシリーズの事件をすべてclick事件と見なしましたか.の
わかった当初私もそうだった...
だからtapとscrollの違いは、ある方向の変位が10 pxより大きいかどうかを知っておく必要があります.
jQueryMobileはこれによって判定される.