【发布时间】:2009-12-02 10:31:23
【问题描述】:
我有一个 jQuery UI 对话框,它是模态的,并带有弹跳效果。我使用一个主题,其中背景用条纹图像变暗。 第一次打开 Dialog 时,条纹背景也会在反弹效果期间覆盖对话框。反弹效果完成后,对话框变为模态并出现在条纹背景的前面。 在下一次打开时,对话框会立即在背景前面弹跳。
如何让对话框立即出现在背景前面?
【问题讨论】:
我有一个 jQuery UI 对话框,它是模态的,并带有弹跳效果。我使用一个主题,其中背景用条纹图像变暗。 第一次打开 Dialog 时,条纹背景也会在反弹效果期间覆盖对话框。反弹效果完成后,对话框变为模态并出现在条纹背景的前面。 在下一次打开时,对话框会立即在背景前面弹跳。
如何让对话框立即出现在背景前面?
【问题讨论】:
Tom 的回答为我指明了正确的方向,Firebug 非常有用!
对话框包裹在<div class="ui-effects-wrapper"> 中,该<div class="ui-effects-wrapper"> 是在ui\effects.core.js 中的createWrapper 函数中生成的
我在那里添加了一个参数“z-index=1005”(只是为了确定;)。
所以在 jquery-ui-1.7.2.custom.min.js 中它现在看起来像这样
createWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent()}var g={width:f.outerWidth(true),"z-index":1005,height:f.outerHeight(true),"float":f.css("float")};f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;border:none;margin:0;padding:0;z-index:1002"></div>');
不确定这是否是最好的方法,但它有效。
【讨论】:
这听起来像是在动画之后才分配对话框的 zIndex。在你的 CSS 中试试这个:
.ui-dialog {
z-index: 1002;
}
对话框通常有这个 CSS 类,并且覆盖层的 zIndex 通常为 1000(至少在我当前使用的版本中)。如果这不起作用,请尝试找出(使用 Firebug)仅在动画期间分配了哪些其他类,并为这些类分配 zIndex。
【讨论】: