arrastar e soltar na tela sensível ao toque

Eu tenho procurado por um guia claro sobre como esses eventos funcionam e agora estou mais confuso do que quando comecei.

Certos recursos do meu site envolvem arrastar e soltar. Atualmente, dispositivos móveis (ou qualquer coisa sem mouse) são suportados pelo usuário selecionar o item, tocar no botão "mover" e tocar no ponto de retorno. Enquanto isso funciona muito bem (itens estão em uma grade visível), não é exatamente tão fácil de usar quanto arrastar.

Meu entendimento inicial é que, onde quer que eu atribuaelement.onmousedown, element.onmousemove eelement.onmouseup Eu também posso simplesmente atribuir o mesmo manipulador paraelement.ontouchstart, element.ontouchmove eelement.ontouchend respectivamente.

No entanto, isso deixa as seguintes perguntas:

Como eu obtenho as coordenadas do ponto de contato, e em que ele é relativo?A exibição será movimentada (a ação padrão de arrastar) e, em caso afirmativo, será cancelável?Como posso evitar a interferência em ações multitoque, como beliscar para aplicar zoom se um dedo estiver em um elemento arrastável?

questionAnswers(3)

yourAnswerToTheQuestion