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程序设计有所帮助。