H5滑动处理

H5简单实现滑动效果

H5滑动处理

//调用
swipe(document.body,{  
	swipeUp:function(){  
		$native.alert("Up");        
	},  
	swipeDown:function(){  
		$native.alert("Down");    
	},  
	touchMove:function(e){  
		var target = e.target;  
		if(target.className !== "book-cover"){//当遇到class=‘book-cover’的时候,不阻止默认行为。  
			e.preventDefault();  
		}  
	},
	swipeLeft:function(){  
		$native.alert("Left");        
	},  
	swipeRight:function(){  
	   $native.alert("right");  
	},  
});



function swipe(ele,opts){  
    var DISTANCE = 40;  
  
    var pointStart,  
        pointEnd;  
  
  
    function init(){  
        opts = opts ||{};  
        bindEvent();  
    }  
    init();  
  
    function bindEvent(){  
        ele.addEventListener('touchstart',touchStart,false);  
        ele.addEventListener('touchend',touchEnd,false);  
        ele.addEventListener('touchmove',touchMove,false);  
    }  
  
    function touchStart(e){  
        var point = e.touches[0];  
        pointStart = {  
            x:point.clientX,  
            y:point.clientY  
        }  
    }  
  
    function touchEnd(e){  
        if(!pointEnd){  
            return;  
        }  
  
        var y = pointStart.y -  pointEnd.y,  
            absY = Math.abs(y);  
  
            x = pointStart.x - pointEnd.x;  
            absX = Math.abs(x);  
  
        if(y<0&&absY>DISTANCE){  
            swipeUp();  
        }  
  
        if(y>DISTANCE){  
            swipeDown();  
        }  
  
        if(x<0&&absY>DISTANCE){  
            swipeLeft();  
        }  
  
        if(x>DISTANCE){  
            swipeRight();  
        }  
  
        pointStart = undefined;  
        pointEnd = undefined;  
  
    }  
  
    function touchMove(e){  
        var point = e.touches[0];  
        pointEnd = {  
            x: point.clientX,  
            y: point.clientY  
        }  
        opts.touchMove&&opts.touchMove(e);  
    }  
  
    function swipeLeft(){  
        opts.swipeLeft&&opts.swipeLeft();  
    }  
  
    function swipeRight(){  
        opts.swipeRight&&opts.swipeRight();  
    }  
  
    function swipeUp(){  
        opts.swipeUp&&opts.swipeUp();  
    }  
  
    function swipeDown(){  
        opts.swipeDown&&opts.swipeDown();  
    }  
  
} 

  

posted @ 2016-08-29 11:12  coderJK  阅读(435)  评论(0编辑  收藏  举报