js判断手机和pc端选择不同执行事件的方法
本文实例讲述了js判断手机和pc端选择不同执行事件的方法。分享给大家供大家参考。具体如下:
判断是否为手机:
functionisMobile(){
varsUserAgent=navigator.userAgent.toLowerCase(),
bIsIpad=sUserAgent.match(/ipad/i)=="ipad",
bIsIphoneOs=sUserAgent.match(/iphoneos/i)=="iphoneos",
bIsMidp=sUserAgent.match(/midp/i)=="midp",
bIsUc7=sUserAgent.match(/rv:1.2.3.4/i)=="rv:1.2.3.4",
bIsUc=sUserAgent.match(/ucweb/i)=="ucweb",
bIsAndroid=sUserAgent.match(/android/i)=="android",
bIsCE=sUserAgent.match(/windowsce/i)=="windowsce",
bIsWM=sUserAgent.match(/windowsmobile/i)=="windowsmobile",
bIsWebview=sUserAgent.match(/webview/i)=="webview";
return(bIsIpad||bIsIphoneOs||bIsMidp||bIsUc7||bIsUc||bIsAndroid||bIsCE||bIsWM);
}
判断使用那种事件:
vartouchStart,touchMove,touchEnd; touchStart=isMobile()?'touchstart':'mousedown'; touchMove=isMobile()?'touchmove':'mousemove'; touchEnd=isMobile()?'touchend':'mouseup';
三种事件的相应处理:
touchstart:function(e){
vare=e||window.event;//要判断使用哪种event
stopDefault(e);//不同的浏览器,阻止浏览器默认事件方法不同
if(isMobile()){//如果是手机
vartouch=e.touches[0];
this.y1=touch.pageY
}else{
this.y1=e.pageY;//如果不是手机
}
this.y2=0;
},
touchmove:function(e){
vare=e||window.event;
stopDefault(e);
if(isMobile()){
vartouch=e.touches[0];
this.y2=touch.pageY;
}else{
this.y2=e.pageY;
}
},
touchend:function(e){
vare=e||window.event;
stopDefault(e);
if(this.y2==0){
return;
}
vardiffY=this.y2-this.y1;
if(diffY>50){
this.doNext();
}elseif(diffY<-50){
this.doPrev();
}
this.y1=0,
this.y2=0;
},
阻止浏览器默认事件方法:
functionstopDefault(e){
vare=e||window.event;
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
}
希望本文所述对大家的javascript程序设计有所帮助。