Pregunta

Estoy tratando de calcular las coordenadas correctas del ratón, en el espacio de coordenadas del usuario, en un documento SVG desde el código de barras de desplazamiento Javascript cuando vienen a existir cuando ese archivo SVG es vista desde Firefox. Pero no es del todo correcto. Esto es necesario para obtener la información de herramientas basadas en SVG dibujan correctamente incluso cuando el SVG se desplaza horizontal o verticalmente.

deseo tener las transformaciones de coordenadas sean correctos en todos los navegadores Internet Explorer y Firefox. Además, quiero hacer esto con una solución Javascript + SVG de origen único que se espera que no requiere código condicional específica del navegador. Actualmente estoy usando Firefox 3.5.10, pero me gustaría considerar la actualización a una versión más reciente de Firefox, y no he probado todavía IE.

El problema que encontré es la de coordinar los desplazamientos de las barras de desplazamiento: La coordenada de ratón transformación no es suficiente cuando las barras de desplazamiento vienen a la existencia sobre el elemento SVG dentro de Firefox. Como una ayuda de depuración de entender las transformaciones de coordenadas, estoy trabajando con un simple archivo SVG que contiene los controladores de Javascript, todo en un solo archivo, que simplemente dibuja punto de mira en el cursor del ratón como objetos de línea SVG. Encontrar publicado en svg_cross_hairs.svg . Si carga el archivo en Firefox y acortar la ventana de Firefox hacia abajo hasta que las barras de desplazamiento aparecen, y luego deslizar hacia las barras de desplazamiento vertical u horizontal, se encuentra que los cruz dibujada por el Javascript se compensan con la cantidad de cualquiera cantidad de desplazamiento horizontal o vertical, que no es correcto con el fin de dibujar un objeto de información de herramientas en o cerca de donde el cursor del ratón en realidad es.

Yo veo la Firefox: Obtener coordenadas del ratón de la esquina superior izquierda de la ventana gráfica pregunta que habla de la scrollTop propiedad.

msg # 00056 aclara que no hay confusión de los significados de los atributos element.{pageX,pageY,clientX,clientY} y el método element.getscreenCTM.

¿Hay una forma más limpia para llegar al ratón coordenadas correcto, en el sistema de coordenadas de usuario?

¿Fue útil?

Solución

Se puede utilizar evt.pageX / o evt.pageY window.pageXOffset / window.pageYOffset para llegar a algo que funciona incluso si el SVG se desplaza.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top