Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как отцентровать окно по вертикали на JQuery UI (v1.12.1)?

Константин Ефименко Гуру (3721), закрыт 3 года назад
У меня есть небольшое модальное окно, которое выглядит следующим образом:

var tbl = $('.tbl');
$(".dlTbl").dialog({
create: function(event, ui)
{
$(event.target).parent().css('position', 'fixed');
},
open: function(event, ui)
{
$(".ui-widget-overlay").on('click', function()
{
$(".ui-dialog-titlebar-close").trigger('click');
});
},
position: {
my: "center bottom",
at: "center top",
of: tbl
},
title:'Выберите из списка',
width:400,
height:210,
autoOpen:false,
resizable:false,
draggable:false,
modal:true
});
$(".dlTbl").dialog("open");

Окно вызывается при клике, по td ячейкам таблицы. Сам диалог прикрепляется к простому div(ву) с классом 'dlTbl'.

Сейчас окно зафиксировано ровно по центру, по диагонали и перемещается вместе со скроллом (бегунком).

Суть проблемы в том, что если скроллить верх или вниз, а затем вызывать модальное окно, то получается небольшое смещение относительно центра.

Вполне возможно, это из-за того, что сейчас положение по вертикали определяется за счёт таблицы, на которую кликаю. Но той же логике, если таблица окажется достаточно большой, то допускаю, что окно вовсе может провалиться под сайт.

Я пробовал задавать относительно окна браузера, но тогда получается неправильно. Модальное окно то всегда сверху, то всегда снизу появляется.

Есть идеи как это правильно сделать?
Лучший ответ
Андрей Высший разум (425151) 4 года назад
Замени модальное окно jQuery UI на, например, arcticModal - оно корректнее центрируется.
Константин ЕфименкоГуру (3721) 4 года назад
2 вещи:

Я бы хотел избежать использования дополнительных и уж тем более малоизвестных плагинов не имеющих достойной документации.

И вторая, не менее важная, дело в том, что у меня при любом раскладе будет использоваться jQuery UI. В связи с этим, я бы предпочёл найти способ решения для него.
Андрей Высший разум (425151) Ты действительно считаешь, что https://arcticlab.ru/arcticmodal/ содержит недостаточную документацию? Интересно, чего именно тебе в этой документации не хватает? jQuery UI - это набор независимых модулей: ты в любой момент можешь скомпоновать библиотеку только из реально необходимых компонентов. Но проблема в том, что качество и функциональность многих из этих модулей, мягко говоря, не блещут. И если ты используешь удобный модуль А, то это совсем не повод создавать себе геморрой, пытаясь вписаться в функционал модуля Б.
Константин ЕфименкоГуру (3721) 4 года назад
Я считаю, что это даже не документация, это ровно нечего. Кажется автор забыл о том, что такое тонкая настройка, её попросту нет.

Ну и зачем мне модуль, который я не смогу использовать и выстраивать по своему усмотрению?
Остальные ответы
Похожие вопросы