目錄
畫布中的真實滑鼠位置
簡單的1:1 場景
不同大小的元素和點陣圖
上下文轉換應用
首頁 web前端 js教程 如何取得 HTML5 Canvas 上的真實滑鼠位置?

如何取得 HTML5 Canvas 上的真實滑鼠位置?

Dec 05, 2024 am 11:25 AM

How to Get the Real Mouse Position on an HTML5 Canvas?

畫布中的真實滑鼠位置

要使用滑鼠遊標在HTML5 畫布中繪製,通常必須將畫布定位在原點(0,0 )在父容器內。但是,如果將畫布位置調整為遠離原點,則繪製時可能會出現差異。

簡單的1:1 場景

如果畫布元素的尺寸與點陣圖尺寸完美對齊(1 :1 比率),使用以下程式碼片段捕捉滑鼠位置:

將此方法整合到您的事件中,提供事件和畫布為論點。它傳回一個詳細說明 x 和 y 滑鼠位置的物件。減去畫布位置以與元素本身對齊。

不同大小的元素和點陣圖

當畫布和點陣圖大小不同時,例如由於 CSS縮放或不同的像素方面比率,調整計算如下:

上下文轉換應用

如果畫布上下文經歷了旋轉或縮放等變換,請計算當前矩陣的逆矩陣以解釋這些變換。較新的瀏覽器透過 currentTransform 屬性提供對當前變換的訪問,而 Firefox 透過 mozCurrentTransformInverted 提供倒置矩陣。

如果需要自訂矩陣計算,請實現您自己的解決方案或利用現有的庫,例如以下提供的庫:[自訂矩陣解決方案](https://github.com/bebraw /calcGeometryFromPointOnTransformedCanvas)

套用逆矩陣調整元素相對性以與正確的滑鼠位置對齊後,將矩陣轉換為滑鼠座標。

或者,如果使用currentTransform 可行:

為了進一步簡化,請考慮使用一個處理所有這些步驟的綜合庫,例如最後一個程式碼區塊中提到的免費的MIT 許可的庫。

以上是如何取得 HTML5 Canvas 上的真實滑鼠位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

Rimworld Odyssey溫度指南和Gravtech
1 個月前 By Jack chen
Rimworld Odyssey如何釣魚
1 個月前 By Jack chen
我可以有兩個支付帳戶嗎?
1 個月前 By 下次还敢
初學者的Rimworld指南:奧德賽
1 個月前 By Jack chen
PHP變量範圍解釋了
3 週前 By 百草

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1603
29
PHP教程
1506
276
如何在node.js中提出HTTP請求? 如何在node.js中提出HTTP請求? Jul 13, 2025 am 02:18 AM

在Node.js中發起HTTP請求有三種常用方式:使用內置模塊、axios和node-fetch。 1.使用內置的http/https模塊無需依賴,適合基礎場景,但需手動處理數據拼接和錯誤監聽,例如用https.get()獲取數據或通過.write()發送POST請求;2.axios是基於Promise的第三方庫,語法簡潔且功能強大,支持async/await、自動JSON轉換、攔截器等,推薦用於簡化異步請求操作;3.node-fetch提供類似瀏覽器fetch的風格,基於Promise且語法簡單

JavaScript數據類型:原始與參考 JavaScript數據類型:原始與參考 Jul 13, 2025 am 02:43 AM

JavaScript的數據類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時復制副本,因此互不影響;引用類型如對象、數組和函數存儲的是內存地址,指向同一對象的變量會相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問題。理解這兩類差異有助於編寫更穩定可靠的代碼。

如何檢查數組是否在JavaScript中包含一個值 如何檢查數組是否在JavaScript中包含一個值 Jul 13, 2025 am 02:16 AM

在JavaScript中檢查數組是否包含某個值,最常用方法是includes(),它返回布爾值,語法為array.includes(valueToFind),例如fruits.includes('banana')返回true;若需兼容舊環境,則使用indexOf(),如numbers.indexOf(20)!==-1返回true;對於對像或複雜數據,應使用some()方法進行深度比較,如users.some(user=>user.id===1)返回true。

高級JavaScript範圍和上下文 高級JavaScript範圍和上下文 Jul 24, 2025 am 12:42 AM

JavaScript的作用域決定變量可訪問範圍,分為全局、函數和塊級作用域;上下文決定this的指向,依賴函數調用方式。 1.作用域包括全局作用域(任何地方可訪問)、函數作用域(僅函數內有效)、塊級作用域(let和const在{}內有效)。 2.執行上下文包含變量對象、作用域鍊和this的值,this在普通函數指向全局或undefined,在方法調用指向調用對象,在構造函數指向新對象,也可用call/apply/bind顯式指定。 3.閉包是指函數訪問並記住外部作用域變量,常用於封裝和緩存,但可能引發

如何在JavaScript中獲取輸入字段的值 如何在JavaScript中獲取輸入字段的值 Jul 15, 2025 am 03:09 AM

要獲取HTML輸入框的值,核心是通過DOM操作找到對應元素並讀取value屬性。 1.使用document.getElementById是最直接方式,給input添加id後通過該方法獲取元素並讀取value;2.使用querySelector更靈活,可根據name、class、type等屬性選取元素;3.可添加input或change事件監聽器實現交互功能,如實時獲取輸入內容;4.注意腳本執行時機、拼寫錯誤及null判斷,確保元素存在後再訪問value。

如何使用JS獲取所選廣播按鈕的值? 如何使用JS獲取所選廣播按鈕的值? Jul 18, 2025 am 04:17 AM

獲取選中的單選按鈕值的核心方法有兩種。 1.使用querySelector直接獲取選中項,通過input[name="your-radio-name"]:checked選擇器獲取選中的元素並讀取其value屬性,適合現代瀏覽器且代碼簡潔;2.使用document.getElementsByName遍歷查找,通過循環NodeList找到第一個checked的radio並獲取其值,適合兼容舊瀏覽器或需要手動控制流程的場景;此外需注意name屬性拼寫、處理未選中情況以及動態加載內容時

JavaScript模板文字:語法和用例 JavaScript模板文字:語法和用例 Jul 13, 2025 am 02:28 AM

模板字符串是JavaScriptES6中引入的一項功能,使用反引號包裹內容並支持變量插值和多行字符串。 1.使用反引號定義字符串如Thisisatemplateliteral;2.插入變量或表達式通過${}語法如Iam${age}yearsold.;3.天然支持多行文本無需手動添加換行符。常見場景包括動態生成HTML內容、多行字符串輸出以及簡化條件邏輯拼接。注意事項包括避免注入攻擊、使用標籤模板的進階用法以及保持邏輯簡潔。

使用JavaScript構建安全的沙盒iframe 使用JavaScript構建安全的沙盒iframe Jul 16, 2025 am 02:33 AM

要使用JavaScript建立一個安全的沙盒iframe,首先利用HTML的sandbox屬性限制iframe行為,例如禁止腳本執行、彈窗和表單提交;其次通過添加特定token如allow-scripts來按需放寬權限;接著結合postMessage()實現安全的跨域通信,同時嚴格驗證消息來源和數據;最後避免常見配置錯誤,如未驗證源、未設置CSP等,並在上線前進行安全性測試。

See all articles