定位jQuery对话框

时间:2010-01-16 23:59:32

标签: jquery dialog css-position

我想将jQuery对话框x-pixels定位在远离浏览器右边框的位置。无论如何这可能吗?

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

位置选项似乎没有那种设置,但有没有其他方法可以做到这一点?

8 个答案:

答案 0 :(得分:15)

这使对话框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');

答案 1 :(得分:8)

如果您创建对话框的position:absolute,则会对常规页面流进行处理,您可以使用lefttop属性将其放在页面的任何位置。

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

并将myPosition css类定义为:

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

您可以使用长度(例如像素)为top设置leftrightbottommyPosition properties或百分比。

答案 2 :(得分:6)

这些答案中的大多数对我来说似乎都是解决方法,我想找到官方的jQuery方法来做到这一点。阅读.position()文档后,我发现它确实可以在jQuery小部件的初始化中完成:

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

+100分别是右边和顶部的距离

答案 3 :(得分:5)

我知道答案已被接受,但万一有人需要更多信息: 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 :(得分:4)

使用此代码,您可以指定您的顶部和左侧位置:

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

答案 5 :(得分:3)

看这里:http://jqueryui.com/demos/dialog/#option-position

使用指定的位置选项初始化对话框。

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

在初始化后获取或设置位置选项。

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

答案 6 :(得分:2)

这对我有用,可以在右上角显示10px偏移的对话框:position: "right-10 top+10"

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

答案 7 :(得分:0)

要修复中心位置,我使用:

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