我想将jQuery对话框x-pixels定位在远离浏览器右边框的位置。无论如何这可能吗?
http://jqueryui.com/demos/dialog/
位置选项似乎没有那种设置,但有没有其他方法可以做到这一点?
答案 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
,则会对常规页面流进行处理,您可以使用left
和top
属性将其放在页面的任何位置。
$('.selector').dialog({ dialogClass: 'myPosition' });
并将myPosition css类定义为:
.myPosition {
position: absolute;
right: 200px; /* use a length or percentage */
}
您可以使用长度(例如像素)为top
设置left
,right
,bottom
和myPosition
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)
});
}