Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有更好的方法来锁定主滚动条而不将其隐藏在GWT中?_Java_Javascript_Html_Css_Gwt - Fatal编程技术网

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()时,它是否工作?