探索者

手机滑动事件实现代码:


var TE=(function(){
	function ini(obj,et,funs,mof,sof){
		var x,x2,xt,yt,y2,y,x1,y1;
		var d=15;
		obj.ontouchstart=function(e){
			xt=x=e.touches[0].pageX;
			yt=y=e.touches[0].pageY;
			sof(xt,yt);
			var tim=Math.ceil((new Date()).getTime()/200);
			if(et=='lclick'){
				var ste=(new Date()).getTime(),
				cte=setTimeout(function(){
					funs(2);
				},500);
				window.ontouchend=window.ontouchmove=function(){
					clearTimeout(cte);
				}
			}else{
				window.ontouchmove=function(e){
					x1=e.touches[0].pageX,
					y1=e.touches[0].pageY;
					y2=Math.round(y-y1),
					x2=Math.round(x-x1);
					var tim1=Math.ceil((new Date()).getTime()/200);
					if(tim1 > tim){
						tim=tim1;
						y=y1;
						x=x1;
					}
					
					var y3=Math.abs(y2),x3=Math.abs(x2);
					if(et=='lr'){
						if(y3 < x3){
							mof(x1);
							e.preventDefault();
						}
					}else if(et=='tb'){
						if(y3 > x3){
							mof(y1);
							e.preventDefault();
						}
					}else{
						mof(x1,y1);
						e.preventDefault();
					}
				};
				window.ontouchend=function(e){
					if(et=='lr'){
						if(x2 > d){
							funs(1);
						}else if(x2 < -d){
							funs(-1);
						}else{
							funs(xt-x1);
						}
					}else if(et=='tb'){
						if(y2 > d){
							funs(1);
						}else if(y2 < -d){
							funs(-1);
						}else{
							funs(yt-y1);
						}
					}else{
						funs(xt-x1,yt-y1);
					}
					window.ontouchmove='';
					window.ontouchend='';
				};
			}
		};
	}
	/*
	@el 对象
	@evt lr 左右滑动|tb 上下滑动|all 滑动|lclick 长touch
	@fn 滑动结束函数
	@mf 滑动过程中的函数
	@sf 滑动开始函数
	*/
	var rn=function(el,evt,fn,mf,sf){
		fn=fn || function(){};
		mf=mf || function(){};
		sf=sf || function(){};
		new ini(el,evt,fn,mf,sf);
	}
	return rn;
})();


其中evt:

lr时表示 左右滑动 回调函数1表示向左 -1表示向右

tb 上下滑动 回调函数1表示向下 -1表示向上

all 滑动

lclick 长touch


demo:http://www.yxsss.com/ui/hd.html


15262

15262:香港赛马会官方网址www.smh0022.top为迎接祖国67周年庆,即日起注册即送38。更有电子游艺七部曲,到处是惊喜,邀您来战

2016-10-02 20:01:56回复


京ICP备12040723号 关于易寻 联系我们 手机版