我怎样才能定位我的jQuery对话框中心?
我已经尝试了下面的代码,但它只将对话框左上angular的位置放在中心,这使得元素被alignment到正确的位置。 我怎样才能将对话框中心对象的元素宽度计算在中心线上,这样中心线就会将对话框切成50%50%的一半?
$('.selector').dialog({ position: 'center' });
http://docs.jquery.com/UI/Dialog#option-position
我很确定你不需要设置一个位置:
$("#dialog").dialog();
应该默认居中 。
我看了看文章,也检查了jquery-ui官方网站上关于定位对话框的内容 :在初始化和初始化之后讨论了两种状态:
代码示例 – (取自jQuery UI 2009-12-03)
使用指定的位置选项初始化对话框。
$('.selector').dialog({ position: 'top' });
初始化后获取或设置位置选项。
//getter var position = $('.selector').dialog('option', 'position'); //setter $('.selector').dialog('option', 'position', 'top');
我认为,如果你要删除位置属性,你会发现它自己中心其他尝试第二个设置选项,你定义“选项”“位置”和“中心”的3个元素。
最新的jQuery UI有一个位置组件:
$("#myDialog").position({ my: "center", at: "center", of: window });
文件: http : //jqueryui.com/demos/position/
获取: http : //jqueryui.com/download
因为对话需要一个位置,所以你需要包含js的位置
<script src="jquery.ui.position.js"></script>
所以,如果有人像我这样打这个网页,或者当我在15分钟内忘记,我使用的jqueryui对话框版本1.10.1和jQuery 1.9.1与if8在iframe(等等),它需要一个指定内或它不起作用,即
position: { my: "center bottom", at: "center top", of: $("#submitbutton"), within: $(".content") }
感谢@ vm370指向正确的方向。
open: function () { var win = $(window); $(this).parent().css({ position: 'absolute', left: (win.width() - $(this).parent().outerWidth()) / 2, top: (win.height() - $(this).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) }); }
尝试这个….
$(window).resize(function() { $("#dialog").dialog("option", "position", "center"); });
我得到了最好的结果把jQuery对话框放在浏览器窗口的中心:
position: { my: "center bottom", at: "center center", of: window },
如http://api.jqueryui.com/position/上的文档中所述,可能有更准确的方法来定位选项“; using ”,但是我很匆忙……
Jquery UI 1.9.2
,jQuery和更高版本不支持IE8
我find了两个解决scheme。
-
回滚到
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
另一件事情可以给你地狱与JQuery对话框定位,特别是对于比浏览器视图端口大的文件 – 你必须添加声明
<!DOCTYPE html>
在文档的顶部。
没有它,jquery倾向于把对话框放在页面的底部,当拖动它时可能会发生错误。
以下位置参数为我工作
position: { my: "right bottom", at: "center center", of: window },
祝你好运!
我必须调用函数dialog()
两次来定位对话框(jQuery v1.11.2 / jQueryUI v1.10.4)。
$("#myDialog").dialog({ /* initial dialog parameters */ }).dialog({ position: { my: "center center", at: "center center", of: window } });
如果您使用单独的jquery文件或自定义的jquery下载任何一种方式确保您也有jquery.ui.position.js添加到您的网页。
你只是在IE浏览器中运行? 如果是这样,请尝试将其添加到页面HEAD标记的第一行:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
尽pipe所有的兼容性问题都是在后来的jQueries中修复的,但是我今天遇到了这个问题。
试试这个旧版本和不想使用位置的人:
$("#dialog-div-id").dialog({position: ['center', 'top'],....
如果在移动设备上使用jquery ui,还需要手动重新定位 – 对话框是通过“left&top”css属性手动定位的。 如果用户切换方向,则定位不再居中,并且之后必须调整/重新居中。
对于只在你的css文件中设置的Win7 / IE9环境:
.ui-dialog { top: 100px; left: 350px !important; }
我用CSS固定:
.ui-dialog .ui-dialog-content { width: 975px!important; height: 685px!important; position: fixed; top: 5%; left: 50%; margin:0 0 0 -488px; }
我有这个问题,我终于明白了这一点。 直到今天,我正在使用一个真正的老版本的jQuery,版本1.8.2。
在我使用过的dialog
地方,我都用下面的位置选项初始化了它:
$.dialog({ position: "center" });
然而,我发现删除position: "center"
或用正确的语法replace它并没有办法,例如:
$.dialog({ position: { my: "center", at: "center", of: window } });
虽然上面的说法是正确的,但是我也是用这个option
来设置页面的位置,
// The wrong old way of keeping a dialog centered passwordDialogInstance.dialog("option", "position", "center");
这导致我所有的对话窗口都粘在视图端口的左上angular。
我不得不用下面的正确的新语法来replace这个的所有实例:
passwordDialogInstance.dialog( "option", "position", { my: "center", at: "center", of: window } );
无法让IE9将对话框居中。
修正它通过添加到CSS:
.ui-dialog { left:1%; right:1%; }
百分比并不重要。 任何less数人工作。