5

我的 webapp 中有 ajax 加载模式对话框:

<p:dialog widgetVar="statusDialog" modal="true" draggable="false" minimizable="false" appendToBody="true"
    closable="false" header="Processing..." resizable="false" maximizable="false" style="overflow:hidden !important; overflow-x: hidden !important; width:auto;">  
     <p:graphicImage library="assets" name="ajax-loader.gif" style="overflow:hidden !important; overflow-x: hidden !important;"></p:graphicImage> 
</p:dialog>
<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>  

不管是什么 CSS 样式(我尝试了各种溢出/溢出-x 等组合)我使用它仍然显示水平(垂直隐藏,没有问题)滚动条。我也玩过 appendToBody 属性。

我需要禁用水平滚动条。

编辑:这是 PrimeFaces 呈现的 HTML

<div id="j_idt18" class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-shadow ui-overlay-hidden" style="overflow: hidden; width: auto; height: auto; left: 832px; top: 210px; visibility: hidden; z-index: 1003; display: block;" role="dialog" aria-labelledby="j_idt18_title" aria-hidden="true" aria-live="off">
<div class="ui-dialog-titlebar ui-widget-header ui-helper-clearfix ui-corner-top">
<span id="j_idt18_title" class="ui-dialog-title">Processing...</span>
</div>
<div class="ui-dialog-content ui-widget-content" style="height: auto;"><img id="j_idt19" src="/webapp/do/javax.faces.resource/ajax-loader.gif?ln=assets" alt="">
</div>
</div>

我已经能够通过在我自己的样式表中覆盖默认对话框 CSS 来摆脱滚动条:

.ui-dialog-content {
    overflow: hidden !important;
}

但是,这会影响所有对话框,而不仅仅是 ajax 加载一个。我希望能够在每个对话框的基础上覆盖该样式。我怎么做?

4

1 回答 1

10

在您的statusDialog对话框中添加styleClass="disable-scroll".

此外,为此创建 CSS 规则:

.disable-scroll .ui-dialog-content {
  overflow: hidden !important;
}

这会将 CSS 应用于具有此自定义类的所有对话框。

于 2013-02-28T13:07:33.057 回答