2013-04-22 2 views
0

Я создаю новые приложения iphone с помощью phonegap (cordova). У меня была одна проблема с моим приложением. Если я нажму на любое поле ввода, появится всплывающее окно iphone, а также изменится целая страница positon. Как фиксированный footer - всплывающее окно над клавиатурой. Пожалуйста, направляйте меня.проблема со всплывающим окном iphone в телефонах?

Спасибо

+0

используйте прокрутку и добавьте все объекты в scrollview и установите смещение содержимого scrollview при нажатии на текстовое поле. – Balu

+0

Не могли бы вы объяснить подробности ..? – Arunkumar

ответ

0

Это трудная задача, чтобы получить «право». Вы можете попытаться скрыть нижний колонтитул на фокусе элемента ввода и показать размытие, но это не всегда надежно на iOS. Каждый раз так часто (один раз в десять, скажем, на моем iPhone 4S) фокусное событие, похоже, не срабатывает (или, может быть, есть состояние гонки), а нижний колонтитул не скрывается.

После долгих проб и ошибок, я придумал это интересное решение:

<head> 
    ...various JS and CSS imports... 
    <script type="text/javascript"> 
     document.write('<style>#footer{visibility:hidden}@media(min-height:' + ($(window).height() - 10) + 'px){#footer{visibility:visible}}</style>'); 
    </script> 
</head> 

По существу: использовать JavaScript, чтобы определить высоту окна устройства, а затем динамически создать запрос CSS медиа, чтобы скрыть колонтитул когда высота окна уменьшается на 10 пикселей. Поскольку открытие клавиатуры изменяет размер экрана браузера, это никогда не прерывается в iOS. Поскольку он использует механизм CSS, а не JavaScript, он намного быстрее и плавнее!

Примечание: Я обнаружил, что использование «видимости: скрыто» менее проблематично, чем «display: none» или «position: static», но ваш пробег может отличаться.

 Смежные вопросы

  • Нет связанных вопросов^_^