Можно ли иметь более детальный контроль над методом отображения/скрытия виджета диалогового окна jQuery UI?
-
22-08-2019 - |
Вопрос
В настоящее время кажется, что при использовании виджета «Диалог» я могу использовать эффекты только в их самой базовой форме.Например, в следующем примере эффект перетаскивания будет использоваться как для отображения, так и для скрытия диалогового окна:
$('#dialog').dialog({show:'drop', hide:'drop'});
Однако значение по умолчанию для метода drop всегда сбрасывается влево.Чего я действительно хочу, так это чтобы он упал вправо.Что-то вроде этого:
$('#dialog').dialog({
show:{effect:'drop', direction:'right'},
hide:{effect:'drop', direction:'right'}
});
Это возможно?
Сейчас я использую 1.6rc6.Я также попробовал версию 1.5.3 (стабильную), но безуспешно.
Немного покопавшись в исходном коде, я не думаю, что это поддерживается как в версии 1.5.3, так и в 1.6rc*.Вероятно, потребуется изменить API, прежде чем можно будет поддерживать описанную выше функциональность.Стирпайк нашел версия это, вероятно, должно быть в основной ветке.Если кто-то знает обратное, поправьте меня.
Решение 2
В настоящее время это невозможно в версиях 1.6 и 1.7.1.
Другие советы
На самом деле вы можете использовать любые эффекты пользовательского интерфейса jQuery;напримерпульсировать:
$("#dialog").dialog({ show: "pulsate" });
Здесь можно найти много: http://docs.jquery.com/UI/Effects/
Обратите внимание, что существует зависимость от effect.core.js.
Я попробовал передать опцию (как и вы) в «показать», это не сработало.Я также пытался сделать функцию «показать», но безуспешно.
Однако работает следующее:
$("a").click(function() {
$("#dialog").hide("drop", { direction: "right" }, 1000);
});
Вы можете найти эту ссылку примеры диалоговых окон полезный.В частности второй справа.Я не уверен, что он использует стандартный плагин диалога, но вы сможете понять это из примеров, которые они используют.