我试图显示一个阻止界面(模式)但没有覆盖的“ajax 加载器对话框”。
这就是我初始化对话框的方式:
$("<div></div>").dialog({
modal: true,
dialogClass: "noOverlayDialog",
autoOpen: false, //opened later
...
});
我添加了以下 CSS 来隐藏叠加层:
.ui-dialog.noOverlayDialog + .ui-widget-overlay { opacity: 0 !important; }
但是,当我调用dialog("open")
覆盖闪烁然后消失时,就好像我使用 Javascript 隐藏了它一样。使用display:none;
or的效果相同visibility:hidden
。
为了确保是 css 删除了覆盖而不是其他东西,我删除了 css 行,并且可以肯定覆盖现在总是可见的。
为什么会这样?我认为静态 CSS 不应该有这种行为,并且覆盖层应该立即隐藏而无需闪烁。
如果我找不到直观的解决方案,也许另一种方法是将 modal 选项设置为 false 以防止叠加在一起,然后编写代码来获取模态行为。无论哪种方式,我都需要一个可行的解决方案。