it-swarm.com.ru

Диалог позиционирования jQuery

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

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

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

15
miro

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

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

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

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

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

8
Anurag

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

у меня это работает в IE FF chrome и ​​сафари

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');
15
user583576

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

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

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

5
user3413723

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

$('#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+'%' );
          }
       }
 });
4
sasan mohammadi

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

$(function() {
            $("#dialog").dialog({
                position: {
                    my: "right bottom",
                    at: "right bottom",
                    of: window
                }
            });
        });
4
Sanjay Zalke

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

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

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

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

//getter
var position = $('.selector').dialog('option', 'position');
//setter
$('.selector').dialog('option', 'position', 'top');
3
dfens

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

$( "#my-dialog" ).dialog({
    resizable: false,
    height:"auto",
    width:350,
    autoOpen: false,
    position: "right-10 top+10"
});
2
Victor

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

open : function() {
    var t = $(this).parent(), w = window;
    t.offset({
        top: (w.height() / 2) - (t.height() / 2),
        left: (w.width() / 2) - (t.width() / 2)
    });
}
0
Eduardo Cuomo