Java 有没有更好的方法来锁定主滚动条而不将其隐藏在GWT中?
我将我的身体元素设置为Java 有没有更好的方法来锁定主滚动条而不将其隐藏在GWT中?,java,javascript,html,css,gwt,Java,Javascript,Html,Css,Gwt,我将我的身体元素设置为 body { overflow-y: scroll; } 这将在my body元素上创建一个滚动条。当我创建一个滚动条并滚动到底部时,页面的主要区域也会滚动 我发现了一些关于这个主题的帖子:但是这些不适用于GWT 我尝试了以下方法: @UiHandler("panel") void onPanelMouseOver(MouseOverEvent event) { Window.enableScrolling(false); } @UiHandler(
body {
overflow-y: scroll;
}
这将在my body元素上创建一个滚动条。当我创建一个滚动条并滚动到底部时,页面的主要区域也会滚动
我发现了一些关于这个主题的帖子:但是这些不适用于GWT
我尝试了以下方法:
@UiHandler("panel")
void onPanelMouseOver(MouseOverEvent event) {
Window.enableScrolling(false);
}
@UiHandler("panel")
void onPanelMouseOut(MouseOutEvent event) {
Window.enableScrolling(true);
}
这是一个糟糕的解决方案,因为主滚动条消失,页面从左到右再向后移动。我想锁定滚动条,而不是隐藏它。隐藏将移动屏幕
是否有更好的方法锁定GWT中的主滚动条?隐藏并锁定正文的滚动条
body {
overflow:hidden;
}
为此,只有gwt引入了布局面板的概念。使用
RootLayout面板
和其他布局面板。如果您维护层次结构,那么您的应用程序将不会有正文滚动。布局面板还可以在浏览器调整大小时调整子窗口小部件的大小。因此,您将获得额外的优势
编辑
如果需要固定标题并在零件的其余部分滚动,请使用RootLayoutPanel并向其添加DockLayoutPanel。将标题面板设置为dockPanel北侧,并将滚动面板添加到dockPanel的中心
FlowPanel headerPanel = new FlowPanel();
headerPanel.setWidth("100%");
ScrollPanel bodyPanel = new ScrollPanel();
DockLayoutPanel myApp = new DockLayoutPanel(Unit.PX);
myApp.addNorth(headerPanel, 100);
myApp.add(bodyPanel);
RootLayoutPanel.get().add();
窗口。启用滚动(false);是这样的。这正是我不想要的。我想锁定滚动条,而不是隐藏它。隐藏会移动屏幕。那么你的问题应该是:有没有更好的方法来锁定主滚动条而不隐藏在GWT中?好的,你能回答这个问题吗?在这里检查答案,根据这个答案,你可能需要使用一些JSNI(Gquery)。布局面板的问题是你的主体上没有滚动条。这是制作固定标题所必需的。如果您将ScrollPanel添加到RootLayoutPanel添加一个宽度为100%的固定标题,那么标题与ScrollPanel重叠。但是这如何解决我的问题呢?滚动事件是否未冒泡到父滚动面板?当我使用DockLayoutPanel时,当我执行event.PreventDefault()和event.stopPropagation()时,它是否工作?