HTML5 手势检测原理和实现

时间:2017-05-04

  1. 双击事件是一个手指的行为。所以在 touchstart 时,我们要判断此时屏幕有几个接触点。
  2. 双击事件中包含两次独立的单击行为。理想情况下,这两次点击应该落在屏幕上的同一个点上。为了给用户一定的冗余空间,将两次点击的坐标点距离限制在10个像素以内。

HTML5 手势检测原理和实现



   3. 双击事件本质是两次快速的单击。也即是说,两次点击的间隔时间很短。通过一定的测试量化后,我们把两次单击的时间间隔设为300毫秒。



HTML5 手势检测原理和实现



  注意双击事件中我们检测了相邻两个 touchstart 事件的位移和时间间隔。

_onTouchStart(e) {

  if(e.touches.length > 1) {

  ...

  } else {

    if(this.previousTouchPoint) {

      //两次相邻的touchstart之间距离要小于10,同时时间间隔小于300ms

      if( Math.abs(this.startX -this.previousTouchPoint.startX) < 10  &&

          Math.abs(this.startY - this.previousTouchPoint.startY) < 10 && 

          Math.abs(this.startTime - this.previousTouchTime) < 300) {

            this._emitEvent('onDoubleTap');

          }

    }

    //保存上一次touchstart的时间和位置信息

    this.previousTouchTime = this.startTime;

    this.previousTouchPoint = {

        startX : this.startX,

        startY : this.startY

     };

  }

}

 

    长按(long press)


  • 共6页:
  • 上一页
  • 2/6
  • 下一页
  • 上一篇:4分钟学会网页样式[译] 下一篇:HTML5 VideoAPI,打造自己的Web视频播放器

    相关文章

    最新文章