我有一个xhtml页面,其中有一组面板堆叠在一起。每个面板都有一个数据表,其中有一个特定的列作为超链接。当我单击第一个数据表中的超链接时,将呈现第二个数据表。当我单击第二个datatable中的超链接时,将呈现第三个datatable。我希望页面向下滚动并在屏幕中央显示新呈现的datatable,而不是将页面加载回屏幕顶部。我如何才能做到这一点。下面是我为实现这一点而编写的代码,但没有成功。
表中的每个超链接都编写了以下代码,
<p:commandLink value="#{abc}" action="#{myBean.myFunction}"
ajax="false" oncomplete="focusPanel3()">
<f:setPropertyActionListener
target="#{myBean.xyz}" value="#{abc}">
</f:setPropertyActionListener>
</p:commandLink>javascript如下所示
function focusPanel3() {
var el = document.getElementById("panel3");
el.scrollIntoView();
window.scroll(0, 1200); //Also tried this line. No luck even then
}在我的Bean中,我将下一个面板的渲染属性设置为true。
发布于 2013-04-14 06:32:50
你可以检查jQuery的平滑滚动,this answer可以引导你。或者jQuery scrollTo插件和this answer也包括一个基本的演示。在使用document.getElementById时,不要忘记提供正确的HTML生成的客户端ID。
https://stackoverflow.com/questions/15989487
复制相似问题