glisser-déposer sur l'écran tactile

J'ai été la recherche d'un guide clair sur la façon dont ces événements et maintenant je suis encore plus confus que lorsque j'ai commencé.

Certaines fonctionnalités de mon site se font glisser-déposer. Actuellement, les appareils mobiles (ou quoi que ce soit, sans une souris) sont pris en charge par l'avoir à l'utilisateur de sélectionner l'élément, appuyez sur le bouton "déplacer", puis touchez le point de chute. Alors que cela fonctionne très bien (les éléments sont sur une grille visible), ce n'est pas exactement aussi convivial que de glisser.

Ma première idée est que, où que j'attribuer element.onmousedown, element.onmousemove et element.onmouseup je peux tout simplement aussi attribuer le même gestionnaire de element.ontouchstart, element.ontouchmove et element.ontouchend respectivement.

Cependant, qui laisse les questions suivantes:

  • Comment puis-je obtenir les coordonnées du point de contact, et quelle est-elle relative?
  • Sera la vue panoramique (l'action par défaut de glissement) et, si oui, est que annulable?
  • Comment puis-je éviter d'interférer avec le multi-touch des actions telles que le pincement pour zoomer si un doigt se trouve sur un élément déplaçable?
Il est intéressant de noter qu'il existe une très bonne raison pour presque pas de support natif pour le drag & drop dans le mobile: il peut interférer avec le défilement. Donc, si vous ne vous étendez votre propre persuado glisser-déposer système pour les appareils mobiles, puis faire absolument certain qu'il n'y a pas de barres de défilement dans la direction de la faire glisser des éléments entraîné. Autrement, une personne peut tenter de faire défiler la page et de fin en faisant glisser l'un de vos draggables. Ou vice-versa.

OriginalL'auteur Niet the Dark Absol | 2012-08-05