我尝试了以下代码,但是它仅将对话框的左上角位置定位到中心,这使元素向右对齐。如何将对话框居中到计算元素宽度的真实中心,以便中心线将对话框切成50%50%的一半?
$('.selector').dialog({ position: 'center' });
我尝试了以下代码,但是它仅将对话框的左上角位置定位到中心,这使元素向右对齐。如何将对话框居中到计算元素宽度的真实中心,以便中心线将对话框切成50%50%的一半?
$('.selector').dialog({ position: 'center' });
Answers:
我很确定您不需要设置职位:
$("#dialog").dialog();
我确实看过这篇文章,还检查了官方jquery-ui网站上有关放置对话框的内容:并讨论了两种状态:初始化和初始化后。
代码示例-(摘自jQuery UI 2009-12-03)
使用指定的position选项初始化对话框。
$('.selector').dialog({ position: 'top' });
初始化后获取或设置位置选项。
//getter
var position = $('.selector').dialog('option', 'position');
//setter
$('.selector').dialog('option', 'position', 'top');
我认为,如果要删除position属性,则会发现它本身居中,否则请尝试第二个setter选项,在其中定义“ option”,“ position”和“ center”的3个元素。
最新的jQuery UI具有位置组件:
$("#myDialog").position({
my: "center",
at: "center",
of: window
});
Doc:http : //jqueryui.com/demos/position/
获取:http : //jqueryui.com/download
$('#myDialog').dialog('widget').position({my:"center", at:"center", of:window)}
$('#myDialog').dialog('widget')
和$('#myDialog').parent()
都可以。
因为对话框需要一个位置,所以您需要包含js位置
<script src="jquery.ui.position.js"></script>
因此,如果有人像我一样点击此页面,或者当我在15分钟内忘记该页面时,我正在iframe(blah)中使用jqueryui对话框版本1.10.1和jquery 1.9.1和ie8,并且需要在它不起作用,即
position: {
my: "center bottom",
at: "center top",
of: $("#submitbutton"),
within: $(".content")
}
感谢@ vm370为我指出正确的方向。
within
但之所以投票赞成,是因为它使用了position属性,就像这样:$('.selector').dialog({ position: my: "center bottom", at: "center top", of: $("#submitbutton") });
而不是在结尾添加呼叫:$('.selector').position(...)
open: function () {
var win = $(window);
$(this).parent().css({
position: 'absolute',
left: (win.width() - $(this).parent().outerWidth()) / 2,
top: (win.height() - $(this).parent().outerHeight()) / 2
});
}
window.scrollTo(0, 0);
它结合使用对我来说非常
left: (window.innerWidth - $(this).parent().parent().outerWidth())/2,
top: (window.innerHeight - $(this).parent().parent().outerHeight())/2
要确定中心位置,我使用:
open : function() {
var t = $(this).parent(), w = window;
t.offset({
top: (w.height() / 2) - (t.height() / 2),
left: (w.width() / 2) - (t.width() / 2)
});
}
我得到最好的结果是将jQuery对话框放在浏览器窗口的中心,其内容如下:
position: { my: "center bottom", at: "center center", of: window },
如http://api.jqueryui.com/position/上的文档中所述,可能有更准确的方式使用选项“ using ”来定位它,但是我很着急...
我必须dialog()
两次调用函数来定位对话框(jQuery v1.11.2 / jQueryUI v1.10.4)。
$("#myDialog").dialog({
/* initial dialog parameters */
}).dialog({
position: {
my: "center center",
at: "center center",
of: window
}
});
以下位置参数对我有用
position: { my: "right bottom", at: "center center", of: window },
祝好运!
Jquery UI 1.9.2
,jquery和更高版本不支持IE8
我找到了两个解决方案。
回滚jquery UI 1.7.2
以支持IE8,
尝试使用此代码 Jquery UI 1.9.2
position: {my: "center", at: "center", of: $("body"),within: $("body") }
根据以下讨论,该问题可能是由于较新的jQuery版本中的IE兼容性较差,还原到1.7.2似乎可以解决此问题,仅在IE8中会发生。 http://forum.jquery.com/topic/jquery-ui-dialog-positioning-not-working-in-ie-8
对于较旧的版本以及不想使用位置的人,请尝试以下方法:
$("#dialog-div-id").dialog({position: ['center', 'top'],....
如果在移动设备上使用jQuery ui,则还需要进行手动重新居中-通过“ left&top” css属性手动定位对话框。如果用户切换方向,则定位不再居中,之后必须进行调整/重新居中。
我对此有疑问,终于找到了答案。直到今天,我使用的是jQuery的真正旧版本1.8.2。
我在任何使用dialog
过的地方都使用以下位置选项对其进行了初始化:
$.dialog({
position: "center"
});
但是,我发现position: "center"
用正确的语法删除或替换它并不能解决问题,例如:
$.dialog({
position: {
my: "center",
at: "center",
of: window
}
});
尽管以上是正确的,但我也在使用 option
在我加载页面时习惯于将位置设置为中心,就像这样:
// The wrong old way of keeping a dialog centered
passwordDialogInstance.dialog("option", "position", "center");
这导致我所有的对话框窗口都停留在视口的左上方。
我必须用下面的正确新语法替换所有这些实例:
passwordDialogInstance.dialog(
"option",
"position",
{ my: "center", at: "center", of: window }
);
无法使IE9居中对话框。
通过将其添加到css中来修复它:
.ui-dialog {
left:1%;
right:1%;
}
百分比无所谓。任何少数人都可以工作。