jQuery对话框不以viewport为中心,而是父元素

时间:2012-09-20 21:13:54

标签: javascript jquery scroll viewport jquery-dialog

我刚刚下载了jQuery 1.8.0,也使用了自定义CSS,我试图让一个非常简单的jQuery对话框工作,但是它不会在当前视口中居中,而是在父元素(正文)中并滚动视口对话框位于中心位置。

我包含了widget和position js文件,并检查了路径是否正确。这就是我所拥有的:

<script src="js/js/jquery-1.8.0.min.js"></script>
<script src="js/js/jquery-ui-1.8.23.custom.min.js"></script>
<script src="js/js/jquery.ui.position.js"></script>
<script src="js/js/jquery.ui.widget.js"></script>

HTML:

<div id="dialog-confirm" title="Empty the recycle bin?">
    <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>These items will be permanently deleted and cannot be recovered. Are you sure?</p>
</div>

HTML完全是从jQuery网站复制的。最后称之为:

var dialog_confirm=$( '#dialog-confirm' ).dialog();
dialog_confirm.dialog('open');

这些问题中的所有解决方案都没有为我解决:
Dialog box not positions center screen
jQuery center element to viewport using center plugin

有人知道如何解决这个问题吗?这是jQuery对话框的标准行为吗?对我来说似乎很奇怪,或者我错了?

2 个答案:

答案 0 :(得分:4)

我经历了从jQuery 1.7 / jQUI 1.8.17到jQuery 1.11 / jQUI 1.9.2的升级。 (升级前对话框定位工作正常。)

在我的情况下,原因是一个旧的doctype触发了怪癖模式,导致jQuery返回$(window).height作为文档的高度而不是视口。切换到HTML5 doctype(<!doctype html>)修复了问题。

答案 1 :(得分:2)

如果可以,请尝试使用较旧的jquery版本,例如1.7.x ......这可能会解决它。这不是一种常见的行为!