pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

HTML5 手勢(shì)檢測(cè)原理和實(shí)現(xiàn)

隨著 Hybrid 應(yīng)用的豐富,HTML5 工程師們已經(jīng)不滿(mǎn)足于把桌面端體驗(yàn)簡(jiǎn)單移植到移動(dòng)端,他們覬覦移動(dòng)原生應(yīng)用人性化的操作體驗(yàn),特別是原生應(yīng)用與生俱來(lái)的豐富的手勢(shì)系統(tǒng)。HTML5 沒(méi)有提
 

  前言


  隨著 Hybrid 應(yīng)用的豐富,HTML5 工程師們已經(jīng)不滿(mǎn)足于把桌面端體驗(yàn)簡(jiǎn)單移植到移動(dòng)端,他們覬覦移動(dòng)原生應(yīng)用人性化的操作體驗(yàn),特別是原生應(yīng)用與生俱來(lái)的豐富的手勢(shì)系統(tǒng)。HTML5 沒(méi)有提供開(kāi)箱即用的手勢(shì)系統(tǒng),但是提供了更底層一些的對(duì) touch 事件的監(jiān)聽(tīng)。基于此,我們可以做出自己的手勢(shì)庫(kù)。


  手勢(shì)


  常用的 HTML5 手勢(shì)可以分為兩類(lèi),單點(diǎn)手勢(shì)和兩點(diǎn)手勢(shì)。單點(diǎn)手勢(shì)有 tap(單擊),double tap(雙擊),long tap(長(zhǎng)按),swipe(揮),move(移動(dòng))。兩點(diǎn)手勢(shì)有 pinch(縮放),rotate(旋轉(zhuǎn))。


  接下來(lái)我們實(shí)現(xiàn)一個(gè)檢測(cè)這些手勢(shì)的 javaScript 庫(kù),并利用這個(gè)手勢(shì)庫(kù)做出炫酷的交互效果。



HTML5 手勢(shì)檢測(cè)原理和實(shí)現(xiàn)



  移動(dòng)


  關(guān)于移動(dòng)手勢(shì)檢測(cè)我們這里不再贅述。總結(jié)一下就是在每次touchmove事件發(fā)生時(shí),把兩個(gè)位移點(diǎn)之間的坐標(biāo)位置相減,就可以了。


  單擊(tap)


  手勢(shì)檢測(cè)的關(guān)鍵是用 touchstart,touchmove,touchend 三個(gè)事件對(duì)手勢(shì)進(jìn)行分解。


  那么怎么分解單擊事件呢?


  1. 在 touchstart 發(fā)生時(shí)進(jìn)入單擊檢測(cè),只有一個(gè)接觸點(diǎn)。因?yàn)閱螕羰录拗茷橐粋€(gè)手指的動(dòng)作。
  2. 沒(méi)有發(fā)生 touchmove 事件或者 touchmove 在一個(gè)很小的范圍(如下圖)。限制 touchmove 在一個(gè)很小范圍,是為了給用戶(hù)一定的冗余空間,因?yàn)椴荒鼙WC用戶(hù)手指在接觸屏幕的時(shí)候不發(fā)生輕微的位移。



HTML5 手勢(shì)檢測(cè)原理和實(shí)現(xiàn)



  3.touchend 發(fā)生在 touchstart后的很短時(shí)間內(nèi)(如下圖)。這個(gè)時(shí)間段的閾值是毫秒級(jí),用來(lái)限制手指和屏幕接觸的時(shí)間。因?yàn)閱螕羰录拈_(kāi)始到結(jié)束是很快的。




HTML5 手勢(shì)檢測(cè)原理和實(shí)現(xiàn)


  有了上面的流程,就可以開(kāi)始實(shí)現(xiàn) tap 事件監(jiān)測(cè)了。

_getTime() {

  return new Date().getTime(); 

}

_onTouchStart(e) {

    //記錄touch開(kāi)始的位置

    this.startX = e.touches[0].pageX;

    this.startY = e.touches[0].pageY;

    if(e.touches.length > 1) {

      //多點(diǎn)監(jiān)測(cè)

      ...

    }else {

      //記錄touch開(kāi)始的時(shí)間

      this.startTime = this._getTime();

    }

 }

_onTouchMove(e) {

  ...

  //記錄手指移動(dòng)的位置

  this.moveX = e.touches[0].pageX;

  this.moveY = e.touches[0].pageY;

  ...

}

_onTouchEnd(e) {

  let timestamp = this._getTime();

  if(this.moveX !== null && Math.abs(this.moveX - this.startX) > 10 ||

    this.moveY !== null && Math.abs(this.moveY - this.startY) > 10) {

      ...

  }else {

    //手指移動(dòng)的位移要小于10像素并且手指和屏幕的接觸時(shí)間要短語(yǔ)500毫秒

    if(timestamp - this.startTime < 500) {

      this._emitEvent('onTap')

    }

  }

}

  


      雙擊(double tap)


  和單擊一樣,雙擊事件也需要我們對(duì)手勢(shì)進(jìn)行量化分解。


【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

由于實(shí)際運(yùn)行環(huán)境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會(huì)達(dá)到,所以這部分不是開(kāi)發(fā)者能夠決定的,開(kāi)發(fā)者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個(gè)自定義的視頻播放器,需要用到HTML5提供的video標(biāo)簽、以及HTML5提供的對(duì)JavascriptAPI的擴(kuò)展。,HTML5中國(guó),中國(guó)最大的HTML5中文門(mén)戶(hù)。
你想要在自己網(wǎng)站上分享一個(gè)產(chǎn)品,或者是一個(gè)作品集,又或者僅僅只是一個(gè)靈感。在你發(fā)布到網(wǎng)上之前,你想讓它看起來(lái)有吸引力,專(zhuān)業(yè),或者至少得看起來(lái)像那么回事。那么你接下
H5廣告,包括H5廣告的設(shè)計(jì)流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專(zhuān)門(mén)做了一個(gè)講義。同時(shí),也讓我意外的收到了非常好反饋和認(rèn)!這是對(duì)我的極大鼓勵(lì)!我的
本文主要內(nèi)容有:框架與組件、構(gòu)建生態(tài)、開(kāi)發(fā)技巧與調(diào)試、html、css與重構(gòu)、native/hybrid/桌面開(kāi)發(fā)、前端/H5優(yōu)化、全棧/全端開(kāi)發(fā)、研究實(shí)驗(yàn)、數(shù)據(jù)分析與監(jiān)控、其它軟技能、前端技術(shù)網(wǎng)
H5Slides是一款基于HTML5的輕量級(jí)幻燈片播放系統(tǒng),以前我們給客戶(hù)演示幻燈片時(shí),還需要在機(jī)器上安裝ppt軟件,有時(shí)還會(huì)因?yàn)榘姹締?wèn)題安裝失敗,影響演示的進(jìn)度。但是如果能用瀏覽器來(lái)
主站蜘蛛池模板: 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 橡胶接头_橡胶软接头_可曲挠橡胶接头-巩义市创伟机械制造有限公司 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 加盟店-品牌招商加盟-创业项目商机平台 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 24位ADC|8位MCU-芯易德科技有限公司 | 家乐事净水器官网-净水器厂家「官方」| 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 辊道窑炉,辊道窑炉厂家-山东艾希尔 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 北京开源多邦科技发展有限公司官网 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 二手回收公司_销毁处理公司_设备回收公司-找回收信息网 | 模切之家-专注服务模切行业的B2B平台! | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 铆钉机|旋铆机|东莞旋铆机厂家|鸿佰专业生产气压/油压/自动铆钉机 | 预制围墙_工程预制围墙_天津市瑞通建筑材料有限公司 |