日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

touch事件总结,监听屏幕点击事件

發布時間:2023/12/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 touch事件总结,监听屏幕点击事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Touch對象--MDN
TouchEvent--MDN

一、問題背景

  • click事件在移動端的300毫秒延遲問題

  • 當需要監聽諸如左滑、右滑之類的事件

  • 二、知識點概括

    1. 事件類型
    • touchstart: //手指放到屏幕上時觸發

    • touchmove: //手指在屏幕上滑動式觸發

    • touchend: //手指離開屏幕時觸發

    • touchcancel: //系統取消touch事件的時候觸發

    2. TouchEvent事件(均只讀)
    • targetTouches?
      一個?TouchList?對象,是包含了如下觸點的?Touch?對象:觸摸起始于當前事件的目標?element?上,并且仍然沒有離開觸摸平面的觸點。

    • touches
      一個?TouchList?對象,包含了所有當前接觸觸摸平面的觸點的?Touch?對象,無論它們的起始于哪個?element?上,也無論它們狀態是否發生了變化。

    • changedTouches?
      一個?TouchList?對象,包含了代表所有從上一次觸摸事件到此次事件過程中,狀態發生了改變的觸點的?Touch?對象。

    • ctrlKey
      ?只讀布爾值,指明觸摸事件觸發時,鍵盤 ctrl 鍵是否被按下。

    • metaKey?
      只讀布爾值,指明觸摸事件觸發時,鍵盤 meta 鍵 (Wikipedia - meta Key)是否被按下。

    • shiftKey?
      只讀布爾值,指明觸摸事件觸發時,鍵盤 shift 鍵是否被按下。

    • altKey?
      只讀布爾,指明觸摸事件觸發時,鍵盤 alt 鍵是否被按下。

    3. Touch對象(均只讀)
    • identifier
      此 Touch 對象的唯一標識符. 一次觸摸動作(我們值的是手指的觸摸)在平面上移動的整個過程中, 該標識符不變. 可以根據它來判斷跟蹤的是否是同一次觸摸過程.?

    • screenX
      觸點相對于屏幕左邊沿的的X坐標.?

    • screenY
      觸點相對于屏幕上邊沿的的Y坐標.?

    • clientX
      觸點相對于可見視區(visual viewport)左邊沿的的X坐標. 不包括任何滾動偏移.?

    • clientY
      觸點相對于可見視區(visual viewport)上邊沿的的Y坐標. 不包括任何滾動偏移.?

    • pageX
      觸點相對于HTML文檔左邊沿的的X坐標.?當存在水平滾動的偏移時, 這個值包含了水平滾動的偏移.

    • pageY
      觸點相對于HTML文檔上邊沿的的Y坐標.?當存在水平滾動的偏移時, 這個值包含了垂直滾動的偏移.?

    • radiusX
      能夠包圍用戶和觸摸平面的接觸面的最小橢圓的水平軸(X軸)半徑. 這個值的單位和screenX 相同.?

    • radiusY
      能夠包圍用戶和觸摸平面的接觸面的最小橢圓的垂直軸(Y軸)半徑. 這個值的單位和screenY 相同.?

    • rotationAngle
      它是這樣一個角度值:由radiusX 和?radiusY 描述的正方向的橢圓,需要通過順時針旋轉這個角度值,才能最精確地覆蓋住用戶和觸摸平面的接觸面.

    • force
      手指擠壓觸摸平面的壓力大小, 從0.0(沒有壓力)到1.0(最大壓力)的浮點數.?

    • target
      當這個觸點最開始被跟蹤時(在?touchstart 事件中), 觸點位于的HTML元素. 哪怕在觸點移動過程中, 觸點的位置已經離開了這個元素的有效交互區域, 或者這個元素已經被從文檔中移除. 需要注意的是, 如果這個元素在觸摸過程中被移除, 這個事件仍然會指向它, 但是不會再冒泡這個事件到?window 或?document 對象. 因此, 如果有元素在觸摸過程中可能被移除, 最佳實踐是將觸摸事件的監聽器綁定到這個元素本身, 防止元素被移除后, 無法再從它的上一級元素上偵測到從該元素冒泡的事件.

    三、 測試情況

    //事件說明:s:touchstart , e:touchend , m:touchmove, c:click //結果說明:1:true 0:false 1. TouchEvent.changedTouches[0].pageX ios : s1 e1 m1 c0 android :s1 e1 m1 c02. TouchEvent.touches[0].pageX ios: s1 e0 m1 c0 android :s1 e0 m1 c03. TouchEvent.targetTouches[0].pageX ios:s1 e0 m1 c0 android :s1 e0 m1 c0

    四、總結

  • 手機上的點擊事件,建議使用touchend 代替click解決點擊延遲問題

  • 如果需要監聽屏幕滑動方向、距離等,建議使用touchstart & touchend的 TouchEvent.changedTouches來獲取點擊位置

  • 總結

    以上是生活随笔為你收集整理的touch事件总结,监听屏幕点击事件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。