Domanda

Ancora un'altra domanda che mi ha beccato negli ultimi giorni. Come avrai visto dalle mie altre domande, sto creando un software mentale. Quindi (estremamente semplificato) ho due div. Uno che è un quadrato sulla pagina e un altro all'interno di quel div che è circa 10 volte più grande e trascinabile. Questo è in modo che gli oggetti possano essere posizionati sullo schermo e quindi spostati leggermente sul lato mentre viene aggiunto un altro oggetto ecc. Lo faccio creando il div scrollabile esterno.

I problemi che sto riscontrando hanno a che fare con la posizione del mouse nella sceneggiatura Java. Se ottengo la posizione del mouse ovunque nel Div non sarà corretto poiché compenserò il Div interno della metà delle sue dimensioni in alto e a sinistra (così efficacemente l'utente sta guardando al centro della tela e può andare in ogni modo) . Ho provato decine di diverse funzioni di coordinate del topo, ma nessuna di queste sembra funzionare. Un esempio che dovrebbe essere il browser incrociato che ho trovato da qualche parte sul web è:

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

Ma anche questo non funziona. Sono quasi certo che l'errore sia perché ho il divista che è trascinabile. Spero di aver avuto un senso cercare di spiegare, ma se non l'ho fatto ecco un jsfiddle molto semplice Nel tentativo di dimostrare la situazione che ho (anche se qui non viene fatto alcun clic del mouse, puramente per dimostrare la mia struttura Div). Nel prodotto sto facendo clic sull'utente doppio sulla tela e apparirà un nuovo oggetto, e quindi perché il mouse coordina deve essere corretto.

Spero che qualcuno là fuori possa aiutarmi.

Grazie in anticipo.

MODIFICARE: Non ho menzionato che per una parte della mia applicazione uso jQuery, quindi una soluzione con o senza jQuery andrebbe bene. Grazie ancora.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top