Правильное поведение сенсорной кнопки для MobileSafari

MobileSafari, как правило, имеет некорректное поведение кнопки HTML (неправильное значение: «не похоже на встроенную кнопку iOS»). Правильное поведение кнопки выглядит следующим образом:

  • Пользователь касается кнопки: кнопка подсвечивается
  • Пользователь вынимает палец из кнопки: кнопка тускнеет
  • Пользователь перетаскивает палец обратно на кнопку: кнопка выделяется
  • Пользователь убирает палец с кнопки и релизы: кнопка не нажимает

Кнопки MobileSafari выделяются, когда вы касаетесь их, остаются выделенными независимо от того, куда вы перемещаетесь, и щелкают независимо от того, где вы их отпускаете (если только вид не прокручивается, и в этом случае касание всегда отменяется , даже если повторно ввести кнопку).

Эта проблема относится ко всем интерактивным объектам, таким как ссылки (когда для -webkit-touch-callout установлено значение нет ). Пока что я нашел только одно веб-приложение с правильным поведением кнопок: Facebook. Глядя на их код, похоже, что они проделали довольно много прыжков, чтобы заставить его работать правильно (отслеживая все события мыши вручную и не используя кнопки вообще). Код плотный, использует Javelin, и я еще не понимаю все части, необходимые для его работы.

Я знаю, что немного шучу (потому что, если бы это было легко, все бы это сделали), но я все равно спрошу.Есть ли какой-нибудь общедоступный код, который обрабатывает эту функцию? Есть ли более простое решение, чем обратное проектирование Javelin, даже если оно применимо только к WebKit? (Javelin не очень хорошо подходит для моих легких потребностей.) Моя конечная цель - правильное поведение кнопки для UIWebView , встроенного в собственное приложение, поэтому гибридные решения JavaScript / ObjC также приемлемы (хотя нет на ум приходят гибридные подходы).

10
задан Rob Napier 17 January 2012 в 16:50
поделиться