久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5 手勢檢測原理和實現

隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
 

  前言


  隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提供開箱即用的手勢系統,但是提供了更底層一些的對 touch 事件的監聽?;诖耍覀兛梢宰龀鲎约旱氖謩輲?。


  手勢


  常用的 HTML5 手勢可以分為兩類,單點手勢和兩點手勢。單點手勢有 tap(單擊),double tap(雙擊),long tap(長按),swipe(揮),move(移動)。兩點手勢有 pinch(縮放),rotate(旋轉)。


  接下來我們實現一個檢測這些手勢的 javaScript 庫,并利用這個手勢庫做出炫酷的交互效果。



HTML5 手勢檢測原理和實現



  移動


  關于移動手勢檢測我們這里不再贅述??偨Y一下就是在每次touchmove事件發生時,把兩個位移點之間的坐標位置相減,就可以了。


  單擊(tap)


  手勢檢測的關鍵是用 touchstart,touchmove,touchend 三個事件對手勢進行分解。


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


  1. 在 touchstart 發生時進入單擊檢測,只有一個接觸點。因為單擊事件限制為一個手指的動作。
  2. 沒有發生 touchmove 事件或者 touchmove 在一個很小的范圍(如下圖)。限制 touchmove 在一個很小范圍,是為了給用戶一定的冗余空間,因為不能保證用戶手指在接觸屏幕的時候不發生輕微的位移。



HTML5 手勢檢測原理和實現



  3.touchend 發生在 touchstart后的很短時間內(如下圖)。這個時間段的閾值是毫秒級,用來限制手指和屏幕接觸的時間。因為單擊事件從開始到結束是很快的。




HTML5 手勢檢測原理和實現


  有了上面的流程,就可以開始實現 tap 事件監測了。

_getTime() {

  return new Date().getTime(); 

}

_onTouchStart(e) {

    //記錄touch開始的位置

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

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

    if(e.touches.length > 1) {

      //多點監測

      ...

    }else {

      //記錄touch開始的時間

      this.startTime = this._getTime();

    }

 }

_onTouchMove(e) {

  ...

  //記錄手指移動的位置

  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 {

    //手指移動的位移要小于10像素并且手指和屏幕的接觸時間要短語500毫秒

    if(timestamp - this.startTime < 500) {

      this._emitEvent('onTap')

    }

  }

}

  


      雙擊(double tap)


  和單擊一樣,雙擊事件也需要我們對手勢進行量化分解。


【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
本文主要內容有:框架與組件、構建生態、開發技巧與調試、html、css與重構、native/hybrid/桌面開發、前端/H5優化、全棧/全端開發、研究實驗、數據分析與監控、其它軟技能、前端技術網
H5Slides是一款基于HTML5的輕量級幻燈片播放系統,以前我們給客戶演示幻燈片時,還需要在機器上安裝ppt軟件,有時還會因為版本問題安裝失敗,影響演示的進度。但是如果能用瀏覽器來
主站蜘蛛池模板: 久久久美女| 久久成人在线视频 | 国产精品免费一区二区三区四区 | 高清人人天天夜夜曰狠狠狠狠 | 久久国产精品免费 | 亚洲精品无 | 欧州一区二区 | 欧美国产日韩在线观看 | 日日夜夜天天 | www.色.com | 国产亚洲一区二区三区 | 激情免费视频 | 日韩欧美在线视频 | 国产激情一区二区三区 | 在线免费观看日本视频 | 国产精品久久av | 女同久久| 国产在线视频一区 | 欧美精品一区二区三区在线四季 | 亚洲男人天堂 | 日韩国产在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 中文字幕在线观看日韩 | 久久久精品黄色 | 日本精品视频一区二区三区四区 | 特级丰满少妇一级aaaa爱毛片 | 国产欧美一区二区三区在线播放 | 中文天堂在线一区 | 九七午夜剧场福利写真 | 国产乱码精品一区二区三区中文 | 在线观看av中文字幕 | 99久久婷婷 | 天天干b | 91精品国产高清一区二区三区 | 国产精品美女视频 | 欧美一级黄视频 | 九色在线视频 | 紧缚调教一区二区三区视频 | 亚洲精品久久久久avwww潮水 | 成年人在线观看 | 青青草视频免费观看 |