作家
登录

HTML5手势检测原理和实现

作者: 来源: 2017-09-28 09:37:42 阅读 我要评论

 {  
  • //手指移动的位移要小于10像素并且手指和屏幕的接触时光要短语500毫秒  
  • if(timestamp - this.startTime < 500) {  
  • this._emitEvent('onTap' 
  • 双击(double tap)

    和单击一样,双击事宜也须要我们敌手势进行量化分化。

    • 双击事宜是一个手指的行动。所以在 touchstart 时,我们要断定此时屏幕有几个接触点。
    • 双击事宜中包含两次自力的单击行动。幻想情况下,这两次点击应当落在屏幕上的同一个点上。为了给用户必定的冗余空间,将两次点击的坐标点距离限制在10个像素以内。

    HTML5手势检测道理和实现

    • 双击事宜本质是两次快速的单击。也等于说,两次点击的距离时光很短。经由过程必定的测试量化后,我们把两次单击的时光距离设为300毫秒。

    HTML5手势检测道理和实现

    留意双击事宜中我们检测了相邻两个 touchstart 事宜的位移和时光距离。

    1. _onTouchStart(e) {  
    2. if(e.touches.length > 1) {  
    3. ...  
    4. else {  
    5. if(this.previousTouchPoint) {  
    6. //两次相邻的touchstart之间距离要小于10,同不时光距离小于300ms  
    7. if( Math.abs(this.startX -this.previousTouchPoint.startX) < 10 &&  
    8. Math.abs(this.startY - this.previousTouchPoint.startY) < 10 &&  
    9. Math.abs(this.startTime - this.previousTouchTime) < 300) {  
    10. this._emitEvent('onDoubleTap');  
    11.  
    12.  //保存上一次touchstart的时光和地位信息  
    13. this.previousTouchTime = this.startTime;  
    14. this.previousTouchPoint = {  
    15. startX : this.startX,  
    16. startY : this.startY  
    17. }; 
    18.   

    长按竽暌功该是最轻易分化的手势。我们可以如许分化:在 touchstart 产生后的很长一段时光内,如不雅没有产生 touchmove 或者 touchend 事宜,那么就触发长按手势。

    如不雅手指在空间上产生了移动,那么长按事宜撤消。

    如不雅手指在屏幕上逗留的时光跨越800ms,那么触发长按手势。

    这里的xLen是两个接触点x坐标差的绝对值,yLen响应的就是y坐标差的绝对值。

    如不雅手指在屏幕上逗留的时光小于800ms,也即 touchend 在 touchstart 产生后的800ms内触发,那么长按事宜撤消。

    HTML5手势检测道理和实现

    1. _onTouchStart(e) {  
    2. clearTimeout(this.longPressTimeout);  
    3. if(e.touches.length > 1) {  
    4. }else {  
    5. this.longPressTimeout = setTimeout(()=>{  
    6. this._emitEvent(

        推荐阅读

        还可以这么玩:盘点iOS 11中Siri的12项新功能

      Siri有了更多的新机能,经由过程分享社交账号QR码获得更活泼的形象,以及它可以吹奏DJ。以下是对iOS 11中Siri的所有操作方法的总结:1.跨设备同步经由过程iOS 11体系,Siri可以总结并适应>>>详细阅读


      本文标题:HTML5手势检测原理和实现

      地址:http://www.17bianji.com/lsqh/37633.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)