IPad Safari сопоставление событий мыши, чтобы коснуться событий в графических картах

Мой сайт широко использует графические карты. Изображения представляют собой страницы из средневековой рукописи. Событие mouseOver тегов AREA имеет прикрепленную к нему подсказку, которая отображает современную типографическую транскрипцию древнего script для линии, на которой курсирует мышь.

Я только что проверил свой сайт на iPad в магазине Apple. IPad во многих отношениях радостен в использовании, однако мне интересно, что Apple отображает события мыши на события, связанные с пальцем. У Apple, вероятно, была веская причина делать то, что они делали, но их выбор кажется противоречивым и чрезмерно сложным для меня.

В частности, браузер Safari iPad явно реагировал как на fingerDown, так и на fingerTap и по-разному. Когда я набрал область карты изображения, была показана всплывающая подсказка, связанная с событием мыши над тегом AREA, и осталась видимой, пока я не постучал где-нибудь еще. Когда я провел пальцем по области карты изображения, область изменила цвет. Таким образом, если iPad Safari обнаруживает манипулятор mouseOver, он выполняет код mouseOver на клике | tap и, по-видимому, предотвращает распространение события "click", так что если у вас также есть что-то связанное с событием click, оно не работает? Правильно ли это?

Но что еще более важно, почему нет fingerDown для iPad-Safari для mouseOver? FingerDown кажется скорее вероятным кандидатом, чем Tap при сопоставлении события mouseOver. Я бы ожидал, что такие вещи будут отображаться таким образом:

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

Если Apple обработала fingerDown в качестве противоположности mouseOver, тогда всплывающая подсказка могла отображаться на FingerDown и снова была сделана невидимой на fingerUp, которая была бы эквивалентом mouseOut.

Возможно, кто-то мог бы рассказать мне о процессе мышления, который привел Apple к этим конкретным сопоставлениям касания мыши? Благодаря

Ответ 1

Я делал некоторые исследования конкретно, когда iPad запускает события "mouseover" против событий "click". Когда пользователь удаляет все страницы на странице, iPad сначала запускает событие "mouseover" , как если бы пользователь только что разместил курсор мыши на этом месте. Он также запускает событие "mouseout" на последнем элементе с фокусом. Браузер, насколько я могу судить, проверяет, произошли ли какие-либо изменения в DOM в результате обратного вызова события "mouseover" .

Если произошел сбой в DOM, браузер не запускает событие "click". Если пользователь нажимает на один и тот же элемент, второй раз браузер запускает событие "click", но не запускает другое событие "mouseover" .

С другой стороны, если после первого нажатия элемента на элемент и DOM не изменился после завершения события "mouseover" , браузер запускает событие "click", не дожидаясь второго крана.

Ответ 2

Я нашел некоторую информацию, которая частично объясняет описанное выше поведение:

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

См. раздел 5, особенно.

Похоже, что прикосновение + удержание - это "выбор" области карты изображения. В приведенной выше ссылке говорится, что выбор пользователя может быть отключен, но он не говорит, что происходит, когда жест сенсорного + удерживания используется в элементе, где пользовательский выбор отключен. Было бы здорово, если бы это могло стать аналогом mouseOver в этих обстоятельствах.