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)
主站蜘蛛池模板: 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 污水处理设备-海普欧环保集团有限公司| 棉服定制/厂家/公司_棉袄订做/价格/费用-北京圣达信棉服 | 消防设施操作员考试报名时间,报名入口,报考条件 | 干式磁选机_湿式磁选机_粉体除铁器-潍坊国铭矿山设备有限公司 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 无锡不干胶标签,卷筒标签,无锡瑞彩包装材料有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | VI设计-LOGO设计公司-品牌设计公司-包装设计公司-导视设计-杭州易象设计 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 |