2012-12-05 3 views
7

Я использую jQuery mobile и пытаюсь показать jQuery pop на загрузке страницы. Но когда страница загружается, всплывающее окно не появляется в центре, вместо этого появляется верхний верхний угол всплывающего окна.jQuery mobile popup не отображается в центре

Но как только размер окна браузера изменяется, всплывающее окно автоматически переключается в центр (даже если я нажму F12 для инструмента для разработчиков). А затем все частые звонки в $ ('# popupBasic'). Popup («open»); заставьте его появиться в центре экрана.

Но первый раз верхний левый угол всплывающего окна, появляющийся в центре.

+0

У меня возникли проблемы, подобное этому.Иногда он появляется, как вы заявляете выше, но в большинстве случаев всплывающее окно даже не кажется видимым (хотя оно есть, как я вижу, изучая DOM). Не уверен, что такое решение. –

+1

с такой же проблемой и с 1.3.0. Последняя версия хром. Вы когда-нибудь находили исправление? – Dave

ответ

0

Это очень неопределенный вопрос.

Несколько пунктов вы должны обеспечить:

  • Какой браузер вы тестирования и какие версии?
  • Какая версия JQM?
  • Есть ли какой-либо пользовательский CSS, взаимодействующий с JQM?

По JQM 1,2, варианты Всплывающие доступны:

по умолчанию: «Происхождение»

Устанавливает элемент, относительно которого всплывающее окно будет по центру. Он имеет следующие значения:

«origin» Когда всплывающее окно открывается, центрируйте по координатам, переданным на вызов open() (см. Страницу методов).

"window" Когда всплывающее окно открывается, в центре окна.

jQuery selector Когда всплывающее окно открывается, создайте объект jQuery на основе селектора и центрируйте его. Селектор фильтруется для элементов, видимых с помощью «: visible». Если результат пуст, всплывающее окно будет центрировано в окне.

Source

+0

Он не появляется в почти каждый, где я пытался, Chrome версии 24.0.1312.32 бета-м Firefox 16.0.1 HTC Wildfire 2.2.1 JQM jquery.mobile-1.2.0.min.js Нет пользовательских CSS с JQM Я пробовал все всплывающие опции, но до сих пор не добился успеха. Для репликации вы можете попробовать это ''

SOME LONG CONTENT
и затем '$ (документ) .bind ('pageinit', функция ({ $ ('# popupBasic') всплывающее окно ("открытый");. }); ' –

1

я получаю ту же ошибку. Вы только хотите показать всплывающее окно после того, как страница была нарисована.

Добавление вашего кода для прослушивания события showhow вместо события pageinit, вероятно, устранит вашу проблему. Он исправил это для меня.

10

Вы можете попробовать изменить положение всплывающего окна на pageshow:

$('#popupLogin').popup('reposition', 'positionTo: window'); 

Я считаю, что вы испытываете вниз позиционирование происходит до страницы полностью нарисованы браузером. Вы можете преодолеть это, переставив всплывающее окно следующим образом:

$(document).on('pageshow', '.selector', function(){ 
    $('#popupBasic').popup('reposition', 'positionTo: window'); 
}); 
+2

Я использую один всплывающий div, который используется для отображения разных изображений на основе выбора пользователя. Эти изображения имеют разные размеры, которые неизвестны до загрузки. Вызов:' $ ('#popupLogin') .popup ('reposition', 'positionTo: window'); 'после загрузки изображения во всплывающее окно успешно центрирует всплывающее окно. – dsdsdsdsd

2
$(document).on("popupafteropen", function() { 
    $('#popup').popup('reposition', 'positionTo: window'); 
}); 

Вы можете использовать пользовательские всплывают события, чтобы изменить его после открытия

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