发自肺腑的说<rich:modalPanel />真是一个不错的弹出层控件
拖动、定位、自动适应大小、手动改变大小 我的需求他都能一一满足
但有些地方也有点人性化过头了 不够灵活
弹出层总是固定(position: fixed)在某个位置上
换句话说 拉动滚动条 弹出层不会跟着上下移动
一般情况下当然没问题 这样也挺好
但当弹出层的高度 > 浏览器的高度后 问题就来了
由于是固定位置 所以超出浏览器的部分就怎么也看不到了
也许控件的作者认为弹出层的内容一定都很短小吧
查看了N遍API 也没发现可以关闭这个"特性"的方法
正规方法的不行 那只能来"硬"的了
过程省略...直接看解决方案吧
IE6以外的浏览器解决方案很简单 只要设置一段CSS样式即可
.rich-mpnl_panel {
position: absolute;
}
但
IE6还不行 需要多费些事
查看源代码得知由于IE6不支持position: fixed
所以弹出层固定位置 是使用IE专有的CSS表达式来实现的
具体代码为 modalPanel.js 580行左右
var leftExpr = "(this.mpLeft || 0) + -Position.cumulativeOffset(this.parentNode)[0] + getSizeElement().scrollLeft + \"px\"";
var topExpr = "(this.mpTop || 0) + -Position.cumulativeOffset(this.parentNode)[1] + getSizeElement().scrollTop + \"px\"";
eCdiv.style.setExpression("left", leftExpr);
eCdiv.style.setExpression("top", topExpr);
由于不想修改控件代码(这样会对以后的升级照成麻烦)
所以只能动态的删除针对top的CSS表达式
代码如下
function removeModalPanelTopFixedForIE6(obj)
{
//IE6
if(jQuery.browser.msie && jQuery.browser.version < 7)
{
//ID
var id = obj.id.substring(0, obj.id.indexOf("Container"));
//去除针对IE6高度top的css表达式
jQuery(obj).find("#" + id + "CDiv")[0].style.removeExpression("top");
}
}
然后需要修正这个问题时这样调用
<rich:modalPanel onshow="removeModalPanelTopFixedForIE6(this)">
......
</rich:modalPanel>
完毕...
分享到:
相关推荐
private List<ToolBarItem> freeItems = new ArrayList<>(); // 构造函数,初始化ToolBarItem public ToolBar() { // 初始化items和freeItems } public String do1() { System.out.println(items); System...
在实际应用中,`<rich:tree>`组件还可以与其他RichFaces组件结合,比如`<rich:contextMenu>`,为树节点提供右键菜单,增强用户体验。同时,通过CSS和JavaScript,可以进一步定制组件的样式和交互行为。 总的来说,`...
<rich:columnGroup> <h:column> <h:outputText styleClass="headerText" value="Name"/> </h:column> ... </rich:columnGroup> </f:facet> ``` 这里使用了`<h:outputText>`标签来显示表头文本,通过`style...
`<a4j:support>`监听`onkeyup`事件,当用户在`h:inputText`中输入时,会触发`reRender="order"`,使`<rich:message>`组件和`<h:outputText>`组件更新,显示当前输入的验证状态。 6. **处理用户输入** `<a4j:...
<rich:panel header="Simple echo"> <h:inputText size="50" value="#{panelBean.text}"> <!-- 添加Richfaces的Ajax行为 --> <a4j:support event="onblur" reRender="output" /> </h:inputText> <h:outputText...
`<rich:componentControl>`标签与`<h:graphicImage>`一起使用,配置了操作"hide",表示在用户点击图片时调用hide操作隐藏面板。`for`属性指定了要控制的组件(这里是"panel"),`attachTo`属性则指定了触发操作的...
<rich:modalPanel id="panel" width="350" height="100"> <f:facet name="header"> <h:panelGroup> <h:outputText value="Modal Panel"></h:outputText> </h:panelGroup> </f:facet> <f:facet name="controls...
<rich:modalPanel id="panel" width="350" height="100"> <f:facet name="header"> <h:panelGroup> <h:outputText value="Modal Panel"></h:outputText> </h:panelGroup> </f:facet> <f:facet name="controls...
`<rich:modalPanel>`是RichFaces中的一个弹出对话框组件,可以在页面上显示一个模态窗口,通常用于展示信息、确认操作或收集用户输入。用户可以设置其大小、位置、关闭按钮以及其他交互特性。 4. **<rich:...
<rich:panel header="Simple echo"> <h:inputText size="50" value="#{panelBean.text}"> <a4j:support event="onkeyup" reRender="output" /> </h:inputText> <h:outputText id="output" value="#{panelBean....
在Rich组件部分,手册介绍了更复杂的UI组件,如<rich:ajaxValidator>用于表单验证,<rich:column>和<rich:columnGroup>用于数据展示,<rich:dataTable>、<rich:extendedDataTable>以及<rich:scrollableDataTable>...
例如,`<rich:calendar>`用于日期选择,`<rich:slider>`用于创建滑动条,`<rich:modalPanel>`则用于创建模态对话框。 2. **Ajax支持**: RichFaces的强项之一是其内置的Ajax功能。它使用A4J(Ajax for JSF)库,...
- **Parameters and JavaScript**:说明如何通过参数和JavaScript来配置 `<rich:componentControl>`。 - **Timing**:讨论 `<rich:componentControl>` 的时间控制选项。 - **Referencedata**:给出具体示例和参考...
<s:Label x="36" y="36" color="maroon" fontSize="20" fontWeight="bold" text="XYZ Corporation Directory"/> <s:Button id="empBtn" x="36" y="85" label="Employees"/> <s:Button id="deptBtn" x="124" y="85...
<p>段落3<b>加粗加粗加粗<br>加粗加粗加粗</b></p> More 详细使用请查看示例,有关原理可以查看Android原生简易图文编辑器 Thanks: XRichText: https://github.com/sendtion/XRichText cwac-richedit: ...
element(Id), rich:component(Id) <br><br>RichFaces 3.2需要JSF 1.2和JDK 5.0以上版本 <br><br>*******<br>这个上传文件是3.2.0 GA的组件库的分卷2<br>文件名:richfaces-ui-3.2.0.GA-bin.part2.rar<br>分卷1地址:...
<mx:HBox id="inputFlight" height="100%" width="100%" verticalAlign="top" paddingLeft="10" paddingTop="10" paddingRight="10"> <base:HLabel text="Flow" /> <base:HText text="E" /> <mx:Spacer ...
<rich:datatable id="myTable" value="#{bean.dataList}" var="item"> <rich:column> <f:facet name="header"> <h:outputText value="日期" /> </f:facet> <h:outputText value="#{item.date}" /> </rich:...
map <F1> :wqall<CR> //<F1>保存全部并退出 ,如果这些键有冲突,就进.vimrc来改吧 map <F2> :NERDTreeToggle<CR> //<F2>打开/关闭目录树边框(左) map <F3> :NERDTreeMirror<CR> //<F3>目录树镜像 map <F4> :wall<CR...
在这个例子中,我们首先在`<h:head>`中引入了`myhc.js`,然后在`<h:body>`中创建了一个`<rich:panel>`,用于承载图表。`<a4j:outputPanel>`是富Faces的异步更新组件,它允许我们在不刷新整个页面的情况下更新其内容...