」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 iPhone 和 Android 上使用 JavaScript 偵測使用者手指滑動?

如何在 iPhone 和 Android 上使用 JavaScript 偵測使用者手指滑動?

發佈於2024-11-15
瀏覽:582

How to Detect User Finger Swipes with JavaScript on iPhone and Android?

如何在iPhone 和Android 上的JavaScript 中檢測手指滑動

開發適合行動裝置的Web 應用程式時,偵測手指滑動等使用者手勢對於創建直覺且響應靈敏的介面至關重要。本指南提供了一個全面的解決方案,使您能夠使用 JavaScript 檢測 iPhone 和 Android 裝置中的手指滑動。

為了偵測手指滑動,我們利用 JavaScript 中的觸控事件偵聽器。以下是幫助您入門的範例程式碼片段:

document.addEventListener('touchstart', handleTouchStart, false);
document.addEventListener('touchmove', handleTouchMove, false);

var xDown = null;
var yDown = null;

function getTouches(evt) {
  return evt.touches || evt.originalEvent.touches;
}

function handleTouchStart(evt) {
  const firstTouch = getTouches(evt)[0];
  xDown = firstTouch.clientX;
  yDown = firstTouch.clientY;
}

function handleTouchMove(evt) {
  if (!xDown || !yDown) {
    return;
  }

  var xUp = evt.touches[0].clientX;
  var yUp = evt.touches[0].clientY;

  var xDiff = xDown - xUp;
  var yDiff = yDown - yUp;

  if (Math.abs(xDiff) > Math.abs(yDiff)) { /*most significant*/
    if (xDiff > 0) {
      /* right swipe */
    } else {
      /* left swipe */
    }
  } else {
    if (yDiff > 0) {
      /* down swipe */
    } else {
      /* up swipe */
    }
  }
  /* reset values */
  xDown = null;
  yDown = null;
}

此程式碼片段偵聽「touchstart」和「touchmove」事件,捕捉初始觸控位置以及移動過程中的更新位置。透過比較 x 和 y 的差異,我們可以確定滑動的方向。無論是向右、向左、向上還是向下滑動,此程式碼都提供了用於檢測手指滑動的強大解決方案。

此方法經過測試和驗證,可在 Android 裝置上有效運作。透過將其合併到您的 JavaScript 程式碼庫中,您可以建立行動優先的 Web 體驗,透過流暢且手勢驅動的互動來取悅使用者。

版本聲明 本文轉載於:1729335143如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 如何在 Linux 伺服器上使 MySQL 不區分大小寫:遷移解決方案
    如何在 Linux 伺服器上使 MySQL 不區分大小寫:遷移解決方案
    在Linux 伺服器上使MySQL 不區分大小寫在遷移場景中,以前託管在Apple 伺服器上的網站在遷移到Linux 伺服器後遇到問題,調查影響MySQL 查詢的潛在區分大小寫差異至關重要。 Mac 和 Windows 伺服器預設處理 MySQL 查詢時不區分大小寫,而 Linux 伺服器則強制區分...
    程式設計 發佈於2024-11-15
  • 使用 NVIDIA AI 端點和 Ragas 評估醫療檢索增強生成 (RAG)
    使用 NVIDIA AI 端點和 Ragas 評估醫療檢索增強生成 (RAG)
    在医学领域,采用先进技术对于加强患者护理和改进研究方法至关重要。检索增强生成 (RAG) 是这些开创性创新之一,它将大型语言模型 (LLM) 的强大功能与外部知识检索相结合。通过从数据库、科学文献和患者记录中提取相关信息,RAG 系统提供了更准确、上下文更丰富的响应基础,解决了纯法学硕士中经常观察到...
    程式設計 發佈於2024-11-15
  • 如何將 GitHub 儲存庫整合到“requirements.txt”中?
    如何將 GitHub 儲存庫整合到“requirements.txt”中?
    在requirements.txt中指定GitHub來源要將從GitHub儲存庫安裝的庫整合到您的依賴項中,請修改您的requirements.txt檔案如下:對於GitHub 儲存庫,省略「package==version」命名約定。相反,請使用以下格式:package-name @ git gi...
    程式設計 發佈於2024-11-15
  • 如何在 PHP 中將數字四捨五入到最接近的 10?
    如何在 PHP 中將數字四捨五入到最接近的 10?
    在 PHP 中將數字四捨五入到最接近的 10將數字四捨五入到最接近的 10 是編程中的常見任務。 PHP 提供了幾個用於對數字進行四捨五入的內建函數,包括 Floor()、ceil() 和 round()。 要將數字四捨五入到最接近的 10,我們可以使用 ceil() 函數。 ceil() 將數字向...
    程式設計 發佈於2024-11-15
  • 為什麼 Golang 沒有原生的 Set 資料結構?
    為什麼 Golang 沒有原生的 Set 資料結構?
    Golang 奇怪地缺乏集合資料結構在Golang 中,對集合資料結構的基本需求導致了一個令人困惑的問題:為什麼不是原生提供的嗎?從 Google 頗具影響力的 Guava 庫中汲取靈感,為什麼 Golang 的設計者省略了對這樣一個基本結構的支持,迫使開發人員自己設計實現? 答案在於使用映射來建立...
    程式設計 發佈於2024-11-15
  • 非常量成員函數和常數成員函數之間的「this」指標型別有什麼差別?
    非常量成員函數和常數成員函數之間的「this」指標型別有什麼差別?
    理解「This」指標的型別「this」指標是指指向其成員函數所在物件的指標稱為。它由編譯器自動提供,用於存取物件的成員。 「this」指標的類型取決於是否在非常量成員函數或常數成員函數中存取它。 在非常量成員函數中,“this”的類型為“ClassName *”,其中ClassName 是類別的名稱...
    程式設計 發佈於2024-11-15
  • 棘手的 Golang 面試問題 - Max 部分 goroutine 編號
    棘手的 Golang 面試問題 - Max 部分 goroutine 編號
    在 Go 面試中,有時會讓應徵者措手不及的一個問題是「可以產生的 goroutine 的最大數量」。答案並不像說出一個具體數字那麼簡單。相反,面試官通常使用這個問題來評估您對 Go 並發模型、記憶體管理以及 goroutine 實踐經驗的理解。 以下是有效回答此問題的簡明指南: 理...
    程式設計 發佈於2024-11-15
  • 如何在 PHP 的 foreach 迴圈中存取元素的索引?
    如何在 PHP 的 foreach 迴圈中存取元素的索引?
    確定 foreach 索引foreach 循環提供了一種迭代數組的便捷方法,但顯示每個元素的索引可以是挑戰。與傳統的 for 迴圈不同,似乎無法直接存取索引變數。 使用Fo​​r 迴圈在for 迴圈中,可以明確遞增索引,如下所示:for ($i = 0; $i < 10; $i) { ...
    程式設計 發佈於2024-11-15
  • 如何防止 Goroutine 中 HTTP 請求逾時後繼續?
    如何防止 Goroutine 中 HTTP 請求逾時後繼續?
    Goroutine Timeout提供的函數 Find() 使用 goroutine 發出一系列 HTTP 請求並處理它們的回應。然而,令人擔憂的是,即使這些請求超過了指定的逾時時間,這些請求也會在後台繼續運作。 潛在的 Goroutine 洩漏不太可能存在 Goroutine 洩漏代碼。當Find...
    程式設計 發佈於2024-11-15
  • 如何在 PHP 中從陣列中檢索物件屬性列?
    如何在 PHP 中從陣列中檢索物件屬性列?
    從陣列中擷取物件屬性列在應用程式中,通常需要從物件清單中提取特定屬性。這個任務可以在 PHP 中有效率地完成,特別是在較新的語言版本。 使用 array_column() 提取屬性PHP 7.0 及更高版本引入了 array_column() 函數,專為此目的而設計。要擷取一列屬性值,只要將cats...
    程式設計 發佈於2024-11-15
  • 私有資料成員與公共變數:什麼時候應該使用 Getter 和 Setter?
    私有資料成員與公共變數:什麼時候應該使用 Getter 和 Setter?
    透過存取控制平衡私有資料成員在物件導向程式設計中,使用私有資料成員與公用getter 和setter 與使用私有資料成員與公共getter 和setter 之間的爭論公開所有變數仍然是一個討論的話題。 私有資料成員和存取控制私有資料成員的主要目的是強制封裝和資料抽象,確保資料完整性和存取控制。透過限...
    程式設計 發佈於2024-11-15
  • Gdevelop o 代碼遊戲引擎功能。
    Gdevelop o 代碼遊戲引擎功能。
    如果你的專案規模不是那麼大,現在的遊戲開發變得很容易。 我使用 Unity 遊戲引擎來開發遊戲,但我厭倦了為腳本檔案編寫或生成程式碼。 我了解了 Gdevelop 5 遊戲引擎。它需要零編碼,但需要一點物理和數學知識。 您可以透過拖放遊戲物件來創建遊戲。 最佳功能: 只需設計精靈和行為 平台...
    程式設計 發佈於2024-11-15
  • 使用PHP的Substr函數時如何保持單字邊界?
    使用PHP的Substr函數時如何保持單字邊界?
    在PHP 的Substr 中維護單字邊界在Web 開發中,通常需要截斷字串以適應特定的約束,例如資料庫欄位或使用者介面中的字元限制。 PHP substr 函數提供了一種提取子字串的便捷方法,但預設情況下,它不考慮單字邊界。這可能會導致尷尬的截斷,在中間分割單字。 要確保截斷的字串在單字邊界上結束,...
    程式設計 發佈於2024-11-15
  • \“主要是模組和導入導出-package.json!\”
    \“主要是模組和導入導出-package.json!\”
    这里有一个有趣且引人入胜的方式来解释为什么所有四个字段 - module、main、exports 和 import——package.json 中需要: 为什么所有四个字段都很重要: 主要:经典看门人 角色:将 main 视为包中明智的老圣人。它自 Node.js 诞生以来就一直存...
    程式設計 發佈於2024-11-15
  • -?什麼是紗線?
    -?什麼是紗線?
    當您正在處理一個專案時,請看到一個yarn.lock 檔案盯著您,您可能會想,「什麼是yarn?」。那麼就讓我們開始吧。 Yarn 是主要的 JS 套件管理器之一,用於管理 JS 專案中的依賴項(套件和庫)。 套件管理器是幫助開發人員處理專案所需的外部程式庫和模組的工具 → 自動化安裝、更新和...
    程式設計 發佈於2024-11-15

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3