Android-браузер/Samsung Galaxy SII прокрутка ошибок на веб-формах. Выбрать список hitboxes не прокручивать

EDIT: Я загрузил видео на youtube, демонстрируя здесь ошибку: http://www.youtube.com/watch?v=zkDYlgtX5Hk

У меня очень странная ошибка, что я нашел тестирование моего нового веб-приложения на Samsung Galaxy S2 под управлением Android 4.03 ICS.

Случается, что когда вы загружаете форму в веб-браузере по умолчанию, а затем прокручиваете страницу вниз, то область, в которой находится hitbox/touchable, кажется, остается там, где она была на экране, когда первая страница загружалась, хотя сам элемент формы прокрутил экран.

Насколько я могу судить по немногим тестирующим устройствам, которые у меня имеются, я думаю, что это происходит только на Samsung Galaxy S2, поскольку я пробовал его в Android-симуляторе с той же версией Android и не смог воспроизвести проблему, Я знаю, что это делает его очень конкретной пользовательской базой, которая обладает пробкой, но в последний раз я проверил Galaxy s2 был самым популярным телефоном Android в моей стране (Австралия), поэтому было бы неплохо найти исправление.

Я создал очень простую страницу, чтобы продемонстрировать это на http://users.tpg.com.au/geoffica/test.html

Вы можете реплицировать проблему, выполнив следующие действия:

  • Загрузите страницу на Galaxy S2
  • Прокрутите браузер так, чтобы страница полностью заполняла экран, а адресная строка находится в верхней части экрана.
  • Если поле выбора, поместите палец в сторону экрана в качестве маркера, где был выбран список выбора.
  • Прокрутите страницу вниз на любое расстояние (сохраняя список выбора на экране), затем коснитесь пробела, в котором был выбран список выбора, и параметры должны появиться на экране. Это может занять несколько попыток, но это произойдет.

Теперь я знаю, что вы думаете, что это довольно сложно реплицировать и, вероятно, редко, что это произойдет, но в форме, которую я построил для клиента, из-за расположения элементов, hitbox всегда перекрывал кнопку отправки формы, что очень затрудняет нажатие кнопки отправки. Выбранные списки также украдут штрихи из других списков выбора, если совпадения попадают, делая неправильные параметры при прикосновении.

Я пробовал много вещей, но единственным обходным решением, которое я нашел до сих пор, является использование события touchstart для запуска моей кнопки отправки вместо события click. Вероятно, это происходит до события щелчка списков выбора и не позволяет ему получить первый, но это далеко не идеальный и не останавливает списки выбора из-за кражи кликов из других элементов на странице.

Я также подумал о том, чтобы переместить мой собственный jQuery-плагин, чтобы разместить выбранные списки вне экрана, а затем запустить их события щелчка, коснувшись ссылки или чего-то еще. Если это мобильное устройство, тогда параметры будут отображаться на экране независимо от положения выбранного ilst. Это было бы довольно громоздким, и мне нужно было бы повлиять на эффект, который это будет на пользователей, поступающих из ПК или ipad, например, который показывает варианты в раскрывающемся списке. Звучит довольно пролематично для меня. Может даже потребоваться некоторый нюанс браузера/устройства Galaxy s2.

Есть ли у кого-то реальное обходное решение для этого, кроме просто не используя списки выбора?

Ответ 1

Вы случайно используете абсолютное позиционирование? это будет фиксироваться в определенной области на экране, а не на странице.

Ответ 2

Во-первых, я бы обновил заголовок документа до надлежащего заголовка HTML5:

<!DOCTYPE html>

Ответ 3

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

Может быть, это решение, и это всего лишь намек:)