javascript - Wie erhalte ich die Koordinaten eines Berührungsereignisses im Canvas im nativen Canvas?
黄舟
黄舟 2017-05-24 11:36:27
0
3
637

Wenn Canvas auf das Mousedown-Ereignis reagiert, kann es die internen Koordinaten des Elements über event.offsetX und offsetY extrahieren. Dann habe ich zu touchstart gewechselt und es gibt kein offsetX und offsetY

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

Antworte allen(3)
曾经蜡笔没有小新

在我的 canvas 地图库 Sinomap 中处理的算法是这样的(有改动):

// 注意这里是为 canvas 的 DOM 元素增加 Listener 而非 canvas 的 ctx
document
  .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])
}
过去多啦不再A梦

touch事件 你需要 获取 e.touches[0].pageX 或者其他坐标,至于touchend 的话,为了兼容性考虑,最好用e.changedTouches

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!