Question

Encore une autre question qui m'a échoué ces derniers jours. Comme vous l'avez peut-être vu à partir de mes autres questions, je crée des logiciels Mind Map. Donc (extrêmement simplifié) j'ai deux div. Celui qui est un carré sur la page, et un autre à l'intérieur de cette div qui est environ 10 fois plus grande et dragable. C'est ainsi que les objets peuvent être placés sur l'écran, puis déplacés légèrement sur le côté pendant qu'un autre objet est ajouté, etc.

Les problèmes que j'ai cependant sont à voir avec la position de la souris dans le script Java. Si j'obtiens la position de la souris n'importe où dans la div, il ne sera pas correct car je compense la div intérieure de la moitié de sa taille vers le haut et à gauche (donc l'utilisateur regarde le milieu de la toile et peut aller comme ils le souhaitent) . J'ai essayé des dizaines de différentes fonctions de coordonnées de souris, mais aucun de ces éléments ne semble fonctionner. Un exemple qui est censé être un navigateur croisé que j'ai trouvé quelque part sur le Web est:

function getMouse(e) {
  var posx;
  var posy;
  if (!e) var e = window.event;
  if (e.pageX || e.pageY) {
    posx = e.pageX;
    posy = e.pageY;
  }
  else if (e.clientX || e.clientY) {
    posx = e.clientX + document.body.scrollLeft + document.getElementById("canvas").scrollLeft;
    posy = e.clientY + document.body.scrollTop  + document.getElementById("canvas").scrollTop;
  }
} //getMouse

Mais même cela ne fonctionne pas. Je suis presque certain que l'erreur est parce que j'ai la div intérieure étant dragable. J'espère que j'ai eu du sens pour essayer d'expliquer, mais si je n'ai pas Voici un jsfiddle très simple Dans une tentative de démontrer la situation que j'ai (bien qu'aucun clic de souris ne soit effectué ici, uniquement pour démontrer ma structure div). Dans le produit, je fais de l'utilisateur double cliquer sur la toile et un nouvel objet apparaîtra, et donc pourquoi les coordonnées de la souris doivent être correctes.

J'espère que quelqu'un là-bas pourra m'aider.

Merci d'avance.

ÉDITER: Impossible de mentionner que pour une partie de mon application, j'utilise jQuery, donc une solution avec ou sans jQuery serait bien. Merci encore.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top