Вопрос

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

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

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

Это было полезно?

Решение

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

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

и определите класс css myPosition как:

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

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

Другие советы

Это удерживает диалоговый элемент 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');

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

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

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

Я понимаю, что ответ уже принят, но на всякий случай, если кому-то понадобится дополнительная информация: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
                }
            });
        });

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

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

Смотри сюда: http://jqueryui.com/demos/dialog/#option-position

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

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

Получите или установите параметр позиции после инициализации.

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

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

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

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

open : function() {
    var t = $(this).parent(), w = window;
    t.offset({
        top: (w.height() / 2) - (t.height() / 2),
        left: (w.width() / 2) - (t.width() / 2)
    });
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top