Search code examples
jqueryhtmlcssjquery-uijquery-ui-dialog

jqueryui dialog positioning


I am using JQuery UI and would like to position my dialog horizontally centered but vertically above center, maybe by a fixed amount of pixels or a relative distance from the top of the page. Is there an easy way to do this? It looks like there are just a couple pre-defined values or I can use an exact position but is there an easy way to accomplish this?

 $("#dialog-form").dialog({
                autoOpen: false,
                width: 630,
                position: 'center',
                modal: true,
                resizable: false,
                closeOnEscape: false

            });

Solution

  • Use the position option to align the top of the dialog with the top of the window (plus a pixel or percent offset).

    This should center the dialog horizontally and position it 150 pixels from the top.

    $("#dialog-form").dialog({
        autoOpen: false,
        width: 630,
        position: { my: 'top', at: 'top+150' },
        modal: true,
        resizable: false,
        closeOnEscape: false
    });
    

    Older versions of jQuery UI used an array containing an [x,y] coordinate pair in pixel offset from left, top corner of viewport (e.g. [350,100]).

    var dialogWidth = 630;
    $("#dialog-form").dialog({
        // ...
        width: dialogWidth,
        position: [($(window).width() / 2) - (dialogWidth / 2), 150],
        // ...
    });