Поддържайте диалоговия прозорец на jQuery UI във фиксирана позиция

Искам да запазя диалоговия прозорец на потребителския интерфейс на 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
Смятам, че е по-добре да стартирам тази логика в събитието за създаване, така че да можете да извикате стандартния .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