Когда вы используете диалог jquery UI, все работает хорошо, за исключением одного. При изменении размера браузера диалоговое окно просто остается в исходном положении, что может сильно раздражать.
Вы можете проверить это: http://jqueryui.com/demos/dialog/
Щелкните пример «модального диалогового окна» и измените размер браузера.
Я бы хотел, чтобы диалоги автоматически центрировались при изменении размера браузера. Можно ли это эффективно сделать для всех диалогов в моем приложении?
Большое спасибо!
источник
$(".ui-dialog-content").dialog("option", "position", "center");
это будет проверять любой диалог :)В качестве альтернативы ответу Элседиль,
Это решение не сработало для меня сразу, поэтому я сделал следующее, которое также является динамической, но сокращенной версией:
+1 для Ellesedil хотя
РЕДАКТИРОВАТЬ:
Намного более короткая версия, которая отлично подходит для одиночных диалогов:
Нет необходимости использовать .each (), возможно, если у вас есть уникальные диалоги, которые вы не хотите трогать.
источник
.resize()
и внутри, если счетчик достигнет10
или20
тогдаbreak;
, у меня не было этой проблемы, я не обслуживаю эти устройства / браузеры. Вы должны попробовать решение, из которого можно выйти, если оно застряло,Более полный ответ, который использует ответ Ника более гибким образом, можно найти здесь .
Ниже приводится адаптация актуального кода из этой ветки. Это расширение, по сути, создает новую настройку диалогового окна, называемую autoReposition, которая принимает значение true или false. Код, как написано, по умолчанию устанавливает значение true. Поместите это в файл .js в своем проекте, чтобы ваши страницы могли использовать его.
Это позволяет вам указать «истина» или «ложь» для этого нового параметра при создании диалогового окна на странице.
Теперь этот диалог всегда будет перемещаться. AutoReposition (или как вы его называете) может обрабатывать любые диалоги, у которых нет позиции по умолчанию, и автоматически перемещать их при изменении размера окна. Поскольку вы устанавливаете это при создании диалога, вам не нужно каким-то образом идентифицировать диалог, потому что функция изменения положения встроена в сам диалог. И самое приятное то, что, поскольку это устанавливается для каждого диалога, вы можете изменить положение некоторых диалогов, а другие останутся на своих местах.
Благодарим пользователя scott.gonzalez на форумах jQuery за полное решение.
источник
$(".ui-dialog-content:visible").each(function () { if ($(this).dialog('option', 'autoReposition')) { $(this).dialog('option', 'position', $(this).dialog('option', 'position')); } });
он отлично работает :)$( "#dialog" ).dialog( "option", "position" )
на$(this).data("dialog").options.position
потом. В любом случае, теперь этот ответ работает!Другой вариант, который работает только с CSS, - это. Отрицательные поля должны составлять половину вашей высоты и половину вашей ширины. В этом случае мой диалог имеет ширину 720 пикселей и высоту 400 пикселей. Это центрирует его по вертикали и горизонтали.
источник
В качестве альтернативы можно использовать позицию jQuery ui ,
источник
Всем привет!
Решение Vanilla JS:
источник
$.isVanillaJS == false