Сохранять диалоговое окно пользовательского интерфейса jQuery в фиксированном положении

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

Я успешно использую это решение для той же проблемы с datepicker: Как управлять позиционированием jQueryUI datepicker

Интересно, возможно ли подобное исправление для диалога (я пробовал очевидное изменение - замена «datepicker» на «dialog» - не работает).

Большое спасибо.


person John    schedule 05.08.2011    source источник


Ответы (2)


У меня была та же проблема, которую мне удалось решить, используя Fixed CSS-позиционирование. Инициализируйте диалоговое окно при загрузке страницы (с помощью autoOpen: false), а затем, когда вы хотите, чтобы диалоговое окно отображалось:

$('#dialogContent').parent().css('position', 'Fixed').end().dialog('open');
person Jimbo    schedule 08.11.2011
comment
Я считаю, что лучше запустить эту логику в событии create, чтобы вы могли вызывать стандартный .dialog ('open') в другом месте, без необходимости запускать этот хак каждый раз ... $('#metadata').dialog({ create: function (event) { $(event.target).parent().css('position', 'fixed'); }); - person Langdon; 26.01.2012

добавьте в диалоговое окно следующую настройку.

dialogClass: "dialog-fixed"

в вашем css объявите класс следующим образом.

.dialog-fixed
{
position:fixed !important;
}

это работает для меня ... согласно jquery 2.1.1 и jquery ui 1.11.2

person Abdul Basit    schedule 24.10.2014