久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?

瀏覽:120日期:2022-12-06 14:22:18

問題描述

canvas在響應mousedown事件時,可以通過event.offsetX和offsetY來提取元素內坐標,那我換成了touchstart后沒有offsetX和offsetY.該在哪里找到元素內坐標呢?

問題解答

回答1:

在我的 canvas 地圖庫 Sinomap 中處理的算法是這樣的(有改動):

// 注意這里是為 canvas 的 DOM 元素增加 Listener 而非 canvas 的 ctxdocument .getElementById(’my-canvas’) .addEventListener(’click’, updateHandler, false)function updateHandler (e) { // canvas 為你的 canvas ctx 變量 const box = canvas.getBoundingClientRect() const mouseX = (e.clientX - box.left) * canvas.width / box.width const mouseY = (e.clientY - box.top) * canvas.height / box.height console.log([mouseX, mouseY])}回答2:

touch事件 你需要 獲取 e.touches[0].pageX 或者其他坐標,至于touchend 的話,為了兼容性考慮,最好用e.changedTouches

回答3:

javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 唐山市| 高安市| 灵武市| 宣威市| 琼结县| 江都市| 望江县| 南汇区| 秦皇岛市| 永康市| 嘉义市| 长寿区| 通江县| 南召县| 金门县| 徐水县| 从江县| 常山县| 城步| 即墨市| 定日县| 遂昌县| 长顺县| 海晏县| 曲沃县| 和平县| 越西县| 盐山县| 巴彦县| 土默特左旗| 河津市| 图们市| 庆元县| 屏南县| 赣州市| 民和| 宜丰县| 大方县| 交城县| 醴陵市| 高清|