Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment obtenir les coordonnées d'un événement tactile dans un canevas natif?

Lorsque Canvas répond à l'événement mousedown, il peut extraire les coordonnées internes de l'élément via event.offsetX et offsetY. Ensuite, j'ai changé pour touchstart et il n'y a pas de offsetX et de offsetY. Où puis-je trouver les coordonnées internes de l'élément

.
黄舟黄舟2680 Il y a quelques jours646

répondre à tous(3)je répondrai

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-24 11:38:27

    L'algorithme traité dans ma bibliothèque de cartes canevas Sinomap est le suivant (avec modifications) :

    // 注意这里是为 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])
    }

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-24 11:38:27

    Événement Touch, vous devez obtenir e.touches[0].pageX ou d'autres coordonnées Quant à touchend, pour des raisons de compatibilité, il est préférable d'utiliser e.changedTouches

    .

    répondre
    0
  • 黄舟

    黄舟2017-05-24 11:38:27



    répondre
    0
  • Annulerrépondre