命令列工具
taye/interact.js avatar
taye/interact.js

interact.js:帶慣性和吸附的拖放、縮放與多點觸控庫

此專案圍繞「taye/interact.js」建置,面向真實業務場景,提供可重複使用、可持續維運的開源實作。

12,932 個 Star804 個 ForkTypeScriptMIT

秒懂

它是什麼?
一個 TypeScript 函式庫,用於拖放、縮放和多點觸控手勢,支援慣性和吸附,面向現代瀏覽器和 IE9+。
適合誰用?
README 將 interact.js 定位為獨立的手勢函式庫,包含慣性、吸附和多點觸控,並指向 interactjs.io 取得完整文件。 適合能依 taye/interact.js README 管理相依環境、版本與輸出的人;不適合把 README 的功能清單當成未經條件限制的服務承諾。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 46 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

interact.js:一個面向瀏覽器和 IE9 的拖放函式庫

interact.js 是一個用於拖放、縮放和多點觸控手勢的 JavaScript 函式庫。儲存庫描述中加入了慣性和吸附,README 稱它面向現代瀏覽器以及 Internet Explorer 9 及更高版本。該專案使用 TypeScript 編寫,npm 套件包含型別定義。專案以 MIT 授權發布,版權歸 Taye Adeyemi 所有。儲存庫中繼資料列出了 12,918 個 star 和 806 個 fork,但 README 本身沒有討論採用規模或社群規模。(interact.js 1-1)

在 taye/interact.js 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taye/interact.js 的 README、main 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 interact.js 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 1)

taye/interact.js 第 1 節的入口還要和相鄰章節分開看:interact.js README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taye/interact.js 第 1 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 interact.js 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。interact.js README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

interact.js:功能清單:慣性、吸附、多點觸控與 DOM 行為

README 的功能清單包括慣性和吸附、多點觸控的同步互動、跨瀏覽器和裝置支援、與 SVG 元素的互動、獨立且可自訂,以及除了變更游標(可停用)外不修改 DOM 的承諾。清單沒有深入設定細節;README 中唯一的修飾器範例是拖曳範例中的網格吸附。README 沒有描述慣性如何調整、多點觸控的同步互動如何協調,也沒有說明「獨立且可自訂」在實務上的含義。(interact.js 2-1)

在 taye/interact.js 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taye/interact.js 的 README、main 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 interact.js 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 2)

taye/interact.js 第 2 節的入口還要和相鄰章節分開看:interact.js README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taye/interact.js 第 2 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 interact.js 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。interact.js README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

interact.js:透過套件管理器和 CDN 安裝

README 記錄了多種安裝路徑。在 npm 上,`npm install interactjs` 安裝該套件。對於直接腳本用法,jsDelivr 和 unpkg 都提供了指向 `dist/interact.min.js` 的路徑。對於 Rails 5.1 及以上,README 建議使用 `yarn add interactjs`,然後 `//= require interactjs/interact`。對於 SBT/Play 2 的 Webjars,它建議在 libraryDependencies 中加入 `org.webjars.npm % interactjs`。型別定義包含在 npm 套件中,獨立套件 `@interactjs/types` 可透過 `npm install --save-dev @interactjs/types` 安裝。這些說明中沒有固定版本號。(interact.js 3-1)

在 taye/interact.js 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taye/interact.js 的 README、main 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 interact.js 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 3)

taye/interact.js 第 3 節的入口還要和相鄰章節分開看:interact.js README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taye/interact.js 第 3 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 interact.js 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。interact.js README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

interact.js:彩虹像素畫布範例

README 的範例對帶有 `.rainbow-pixel-canvas` 類別的元素建立可拖曳互動。它設定 `origin('self')`,加入一個透過 `interact.modifiers.snap` 吸附到 16 像素網格的拖曳修飾器,並在移動時在畫布上繪製彩色方塊。顏色由拖曳角度和速度決定。`doubletap` 監聽器清空畫布,另一個函式調整畫布大小,透過 `interact(document).on('DOMContentLoaded')` 和 `interact(window).on('resize')` 綁定。範例還展示了 interact.js 可以透過自己的 API 加入 DOM 事件監聽器。即時版本連結到 CodePen。(interact.js 4-1)

在 taye/interact.js 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taye/interact.js 的 README、main 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 interact.js 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 4)

taye/interact.js 第 4 節的入口還要和相鄰章節分開看:interact.js README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taye/interact.js 第 4 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 interact.js 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。interact.js README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

interact.js:文件、支援連結和授權

文件託管在 interactjs.io/docs。README 還包含 Gitter、jsDelivr、建置狀態和 Code Climate 測試覆蓋率的徽章,但沒有描述文件本身的內容。授權摘要是 MIT 授權。它授予使用、複製、修改、合併、發布、散佈、再授權和出售軟體的權利,前提是包含版權聲明和許可聲明。軟體按「原樣」提供,不附帶任何保證,授權文字沒有涉及支援、安全或持續維護。(interact.js 5-1)

在 taye/interact.js 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taye/interact.js 的 README、main 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 interact.js 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 5)

taye/interact.js 第 5 節的入口還要和相鄰章節分開看:interact.js README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taye/interact.js 第 5 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 interact.js 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。interact.js README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

interact.js:README 未明確說明的部分

README 沒有提供版本號、變更日誌、除已列出瀏覽器之外的瀏覽器相容性矩陣或效能基準。它也沒有描述如何設定慣性或多點觸控,除了範例之外。儲存庫中繼資料顯示 96 個開放問題,但 README 沒有討論這些問題。如果想知道某個特定瀏覽器中某個行為是否有效,或如何調整手勢,下一步是文件站點,但該內容不在本儲存庫的 README 中。(interact.js 6-1)

在 taye/interact.js 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taye/interact.js 的 README、main 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 interact.js 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 6)

taye/interact.js 第 6 節的入口還要和相鄰章節分開看:interact.js README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taye/interact.js 第 6 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 interact.js 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。interact.js README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

編輯結論

README 將 interact.js 定位為獨立的手勢函式庫,包含慣性、吸附和多點觸控,並指向 interactjs.io 取得完整文件。 適合能依 taye/interact.js README 管理相依環境、版本與輸出的人;不適合把 README 的功能清單當成未經條件限制的服務承諾。先執行 README 所列的最小命令或入口,核對 interact.js 的實際輸入、輸出、錯誤訊息與資料保存位置,再決定是否放入正式工作負載;MIT 授權下的再發布與修改責任也要由部署者依 LICENSE 原文確認。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
社群筆記

社群筆記