javascript - 原生canvas中如何获取到触摸事件的canvas内坐标?
问题描述
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:


相关文章:
1. 为什么span的color非要内联样式才起作用?2. docker - 如何修改运行中容器的配置3. css - div设置float:left后高度设置自动会无效 ?4. 小白问题getDay()5. 手机开发 - Android蓝牙模块连接后怎么接收数据?求助6. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?7. 老师,请问我打开browsersync出现这个问题怎么解决啊?8. 请问一下各位老鸟 我一直在学习独孤九贱 现在是在tp5 今天发现 这个系列视频没有实战9. 在cmd下进入mysql数据库,可以输入中文,但是查看表信息,不显示中文,是怎么回事,怎新手,请老师10. html5 - H5做的手机分享页微信更新后,分享出去不再默认显示第一个图 作为缩略图

网公网安备