Диалог позиционирования jQuery - PullRequest
15 голосов
/ 17 января 2010

Я хочу расположить диалоговое окно jQuery на расстоянии x пикселей от правой границы браузера. Это как-то возможно?

http://jqueryui.com/demos/dialog/

Кажется, что опция положения не имеет такой настройки, но есть ли другой способ сделать это?

Ответы [ 8 ]

15 голосов
/ 21 февраля 2012

Это сохраняет диалог div в фиксированной позиции

это работает для меня в IE FF Chrome и Safari

jQuery("#dialogDiv").dialog({
    autoOpen: false, 
    draggable: true,
    resizable: false,
    height: 'auto',
    width: 500,
    modal: false,
    open: function(event, ui) {
        $(event.target).parent().css('position', 'fixed');
        $(event.target).parent().css('top', '5px');
        $(event.target).parent().css('left', '10px');
    }

});

когда вы хотите открыть диалоговое окно, просто позвоните

$('#dialogDiv').dialog('open');
8 голосов
/ 17 января 2010

Если вы сделаете для своего диалогового окна значение position:absolute, тогда оно будет использовано для обычного потока страниц, и вы можете использовать свойства left и top, чтобы разместить его в любом месте страницы.

$('.selector').dialog({ dialogClass: 'myPosition' });

и определите класс myPosition css следующим образом:

.myPosition {
    position: absolute;
    right: 200px; /* use a length or percentage */
}

Вы можете установить свойства top, left, right и bottom для myPosition, используя длину, например, в пикселях или в процентах.

6 голосов
/ 20 июня 2015

Большинство из этих ответов показались мне обходными путями, и я хотел найти официальный способ сделать это в jQuery.Прочитав документы .position(), я обнаружил, что это действительно можно сделать при инициализации виджета jQuery:

$("#dialog").dialog({
    title:title,
    position:{my:"right top",at:"right+100 top+100", of:"body"},
    width:width,
    height:height
})

Где +100 - расстояние справа и сверху соответственно

5 голосов
/ 11 февраля 2015

Я понимаю, что ответ уже принят, но на тот случай, если кому-то понадобится дополнительная информация: http://salman -w.blogspot.co.uk / 2013/05 / JQuery-UI-диалог-examples.html

$(function() {
            $("#dialog").dialog({
                position: {
                    my: "right bottom",
                    at: "right bottom",
                    of: window
                }
            });
        });
4 голосов
/ 03 декабря 2016

с этим кодом вы можете указать свою верхнюю и левую позиции:

$('#select_bezeh_window').dialog({
    modal:true,
    resizable:false,
      draggable:false,
      width:40+'%',
      height:500 ,
      position:{
          using: function( pos ) {
                $( this ).css( "top", 10+'px' );
                $( this ).css( "left", 32+'%' );
          }
       }
 });
3 голосов
/ 17 января 2010

смотрите здесь: http://jqueryui.com/demos/dialog/#option-position

Инициализировать диалог с указанным параметром позиции.

 $('.selector').dialog({ position: 'top' });

Получить или установить опцию положения после инициализации.

//getter
var position = $('.selector').dialog('option', 'position');
//setter
$('.selector').dialog('option', 'position', 'top');
2 голосов
/ 04 марта 2013

Это помогло мне отобразить диалоговое окно в верхнем правом углу со смещением 10 пикселей: position: "right-10 top+10":

$( "#my-dialog" ).dialog({
    resizable: false,
    height:"auto",
    width:350,
    autoOpen: false,
    position: "right-10 top+10"
});
0 голосов
/ 02 августа 2013

Чтобы зафиксировать центральное положение, я использую:

open : function() {
    var t = $(this).parent(), w = window;
    t.offset({
        top: (w.height() / 2) - (t.height() / 2),
        left: (w.width() / 2) - (t.width() / 2)
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...