Domanda

Sto cercando di calcolare le coordinate corrette del mouse, in utente spazio di coordinate, in un documento SVG all'interno di codice Javascript, quando le barre di scorrimento vengono all'esistenza se tale file SVG è visto dal di dentro FireFox. Ma non è del tutto corretto. Ciò è necessario per ottenere i suggerimenti SVG basati su redatto correttamente anche quando lo SVG viene fatta scorrere in orizzontale o in verticale.

I desiderio di avere le trasformazioni di coordinate essere corretti attraverso IE e Firefox. Inoltre, voglio fare questo con un single-source soluzione JavaScript + SVG che si spera non richiede il codice condizionale browser-specific. Attualmente sto usando Firefox 3.5.10, ma vorrei prendere in considerazione l'aggiornamento a una versione più recente di Firefox, e non ho ancora testato IE.

Il problema che ho incontrato è l'offset delle coordinate per le barre di scorrimento: La coordinata del mouse trasformazione non è sufficiente quando le barre di scorrimento vengono all'esistenza sopra l'elemento SVG in Firefox. Come un aiuto di debug per capire le trasformazioni di coordinate, sto lavorando con un semplice file in formato SVG che contiene i gestori di Javascript, il tutto in un unico file, che disegna semplicemente mirino al cursore del mouse come oggetti linea SVG. Cercare pubblicato su svg_cross_hairs.svg . Se si carica il file in Firefox e ridurre la finestra di Firefox verso il basso fino a quando compaiono le barre di scorrimento, e quindi scorrere o le barre di scorrimento verticale o orizzontale, troverete che il mirino tratte dalla Javascript sono compensate dalla quantità di una quantità scorrimento orizzontale o verticale, che non è corretto per disegnare un oggetto suggerimento su o vicino a dove il cursore del mouse è in realtà.

io vedere la Firefox: Get coordinate del mouse dell'angolo superiore sinistro della finestra domanda che parla del scrollTop proprietà.

msg # 00056 chiarisce che non v'è confusione di i significati di attributi element.{pageX,pageY,clientX,clientY} e il metodo element.getscreenCTM.

C'è un modo più pulito per arrivare alla corretta del mouse coordinate, nel nel sistema di coordinate utente?

È stato utile?

Soluzione

È possibile utilizzare evt.pageX / evt.pageY o window.pageXOffset / window.pageYOffset di arrivare a qualcosa che funziona, anche se lo svg viene fatta scorrere.

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