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

#javascript #html #css #jquery-ui

#javascript #HTML #css #jquery-пользовательский интерфейс

Вопрос:

Некоторое время назад у меня была проблема с всплывающими диалоговыми окнами, высота которых выходила за пределы фона. Полупрозрачное наложение остановилось посередине, и все под ним было черным. Мой друг исправил это за меня. Он сказал:

«Для проблемы с диалогом я использовал 900 пикселей для ширины и высоты. Невозможно выполнить исправление исключительно с помощью CSS, потому что значения в конечном итоге перезаписываются, когда вызывается javascript для отображения диалогового окна. Что нам нужно сделать, так это после открытия / создания диалогового окна изменить размер фонового наложения в соответствии с размерами страницы. Вы можете увидеть это в index.html для дополнительных функций.»

К сожалению, это исправление не применяется, когда ширина и высота установлены в «auto».

Может кто-нибудь, пожалуйста, помочь мне здесь? Спасибо.

    $("<div class='popupDialog'>Loading...</div>")
        .dialog({
            autoOpen: true,
            closeOnEscape: true,
            width: '900',
            height: '900',
            modal: true,
            title: 'Bonus Features',
            beforeClose: function(){   $(this).remove();   }
        }).load(url, function() {
            $(this).dialog("option", "position", ['center', 'center'] );
        });


        adjustJQueryDialogOverlay();
    }

    $(window).resize(function() {
        $(".ui-dialog-content").dialog("option", "position", ['center', 'center']);
    });
  

Комментарии:

1. У вас есть рабочий пример проблемы, возможно, jsfiddle?

2. Я даже не знаю, как это сделать. Он добавил adjustJQueryDialogOverlay(); правда, для неавтоматического исправления.

Ответ №1:

 function openDialog(url) {
    $("<div class='popupDialog'>Loading...</div>")
        .dialog({
            autoOpen: false,
            closeOnEscape: true,
            width: '900',
            height: 'auto',
            modal: true,
            title: 'Bonus Features',
        }).bind('dialogclose', function() {
            jdialog.dialog('destroy');
        }).load(url, function() {
            $(this).dialog("option", "position", ['center', 'center'] ).bind('dialogopen', function() {
                    adjustJQueryDialogOverlay();
                });
                $(this).dialog("open");
        });
}

$(window).resize(function() {
    $(".ui-dialog-content").dialog("option", "position", ['center', 'center']);
});