2010-06-02 19 views
10

Mi sitio web hace un uso extenso de mapas de imágenes. Las imágenes son de páginas de un manuscrito medieval. El evento mouseOver de las etiquetas AREA tiene una información sobre herramientas adjunta, que muestra una transcripción tipográfica moderna de la secuencia de comandos antigua para la línea sobre la que se encuentra el mouse.mapeo de Safari de iPad de eventos de mouse para tocar eventos en image-maps

Acabo de ver mi sitio web en el iPad en la tienda Apple. El iPad es en muchos aspectos un placer de usar, sin embargo, me pregunto sobre el mapeo de Apple de los eventos del mouse para los eventos con toque de dedo. Apple probablemente tenía una buena razón para hacer las cosas como lo hicieron, pero sus elecciones parecen contradictorias y demasiado complicadas para mí.

Específicamente, el navegador iPad Safari claramente respondía tanto a fingerDown como a fingerTap, y de diferentes maneras. Cuando hice tapping en un área del mapa de imagen, se mostró la información sobre herramientas conectada al evento sobre el mouse de la etiqueta AREA, y permaneció visible hasta que toqué en otro lugar. Cuando mantuve mi dedo hacia abajo sobre un área del mapa de imágenes, el área cambió de color. Entonces, si iPad Safari detecta un manejador de evento mouseOver, ejecuta el código mouseOver al hacer clic | y aparentemente evita que el evento "clic" se propague, de modo que si también tiene algo conectado al evento click, ¿no funciona? ¿Está bien?

Pero, lo que es más importante, ¿por qué fingerDown no es la contraparte de iPad-Safari para mouseover? FingerDown parece un candidato más probable que Tap al mapear el evento mouseOver. cosas que me hubiera esperado a ser mapeadas de esta manera:

MouseClick : FingerTap (i.e. finger down and then immediately up) 
MouseOver : FingerDown (finger down and stays on the spot) 

Si Apple había tratado fingerDown como contraparte a mouseOver, a continuación, la descripción se pudo mostrar en FingerDown e hizo invisible otra vez en fingerUp, lo que sería la contraparte a mouseOut.

Tal vez alguien podría aclararme sobre el proceso de pensamiento que condujo a Apple a estas asignaciones de eventos mouse-to-touch en particular? Gracias

Respuesta

0

Lo que encontrar alguna información que explica en parte el comportamiento descrito anteriormente:

http://developer.apple.com/safari/library/technotes/tn2010/tn2262/index.html

véase la sección 5, especialmente.

Parece que presionar + mantener está "seleccionando" el área del mapa de la imagen. El enlace anterior dice que la selección del usuario se puede deshabilitar, pero no dice lo que sucede cuando se usa el gesto táctil + mantener en un elemento donde la selección del usuario ha sido deshabilitada. Sería genial si pudiera convertirse en la contraparte de mouseover bajo esas circunstancias.

10

He estado investigando específicamente cuando el iPad dispara eventos "mouseover" frente a eventos "click". Cuando el usuario toca en cualquier lugar de la página, el iPad primero activa un evento "mouseover" como si el usuario acabara de colocar el cursor del mouse en ese punto. También desencadena un evento "mouseout" en el último elemento que tenía el foco. El navegador entonces, hasta donde puedo decir, verifica si se produjo algún cambio en el DOM como resultado de la devolución de llamada de evento "mouseover".

Si ha habido un cambio en el DOM, el navegador no activa un evento de "clic". Si el usuario toca el mismo elemento por segunda vez, el navegador activa un evento de "clic" pero no activa otro evento "mouseover".

Por otro lado, si después de que el usuario toca un elemento por primera vez y el DOM no ha cambiado después de que se completa el evento "mouseover", el navegador activa un "clic" sin esperar un segundo toque .

Cuestiones relacionadas