Подтвердить что ты не робот

JQuery: установить цвет обложки модального диалога

Я хотел бы поместить модальный диалог, используя jquery ui, где наложение полностью черное. Я знаю, что я могу установить это в теме, но я не хочу, чтобы все диалоги имели черный оверлей. Только один из них.

Есть ли способ настроить цвет фона диалога (наложения) для каждого диалога? Возможно, когда он будет создан?

ТИА

4b9b3361

Ответ 1

Ответ Фредерика был очень близок, но он оставил мне одну проблему: у меня было более одного диалога на этой странице, и после того, как я изменил оверлей для одного диалога, он изменил их все, пока страница не была перезагружена. Однако это дало мне представление:

Сначала я сохранил значения по умолчанию в переменных (область страницы), а затем установил свой собственный стиль.

var overlay = $(".ui-widget-overlay");
baseBackground = overlay.css("background");
baseOpacity = overlay.css("opacity");
overlay.css("background", "#000").css("opacity", "1");

Затем, когда диалог закрыт, я восстановил эти значения.

$(".ui-widget-overlay").css("background", baseBackground).css("opacity", baseOpacity);

Основная причина хранения их в переменных (в отличие от их сброса на явные значения) - для удобства обслуживания. Таким образом, даже если файл site.css изменится, он будет работать.

Спасибо за вашу помощь!

Ответ 2

Вы можете использовать события open и закрыть в диалоговом окне ui.

$("#your-dialog").dialog(
{
    autoOpen: false, 
    modal: true, 
    open: function() {
        $('.ui-widget-overlay').addClass('custom-overlay');
    }          
});

И добавьте требуемый стиль в CSS. Пример:

.ui-widget-overlay.custom-overlay
{
    background-color: black;
    background-image: none;
    opacity: 0.9;
    z-index: 1040;    
}

Ответ 3

Элемент overlay является непосредственным родством виджета диалога и предоставляет класс ui-widget-overlay, поэтому вы можете сопоставить его и изменить цвет фона для каждого диалогового окна:

$("#yourDialog").dialog("widget")
                .next(".ui-widget-overlay")
                .css("background", "#f00ba2");

Вы можете увидеть результаты в эту скрипту.

Ответ 4

Фон диалогового окна JQuery - это div, который имеет класс "ui-widget-overlay". Ключевыми стилями, которые вы хотите настроить, являются "непрозрачность", "фильтр" и "фоновый цвет" ( "непрозрачность" и "фильтр" - это два разных способа настройки непрозрачности для разных браузеров.) Вы можете либо отрегулировать определение класса, либо в определении диалога выполните следующие действия:

$("div#MyDialog").dialog({
    title: "My Dialog Title",
    open: function (event, ui) {
        $(".ui-widget-overlay").css({
            opacity: 1.0,
            filter: "Alpha(Opacity=100)",
            backgroundColor: "black"
        });
    },
    modal: true
});

Ответ 5

Изменить фон:

$(".ui-widget-overlay").css({background: "#000", opacity: 0.9});

Восстановить фон до значений CSS:

$(".ui-widget-overlay").css({background: '', opacity: ''});