Drop down menu dojo显示/隐藏一个ContentPane,而另一个ContentPane是液体

Drop down menu dojo显示/隐藏一个ContentPane,而另一个ContentPane是液体,drop-down-menu,dojo,liquid-layout,border-container,Drop Down Menu,Dojo,Liquid Layout,Border Container,几周来我一直在努力破解这个难题,所以我不确定这是不可能的,还是因为我缺乏编码能力。。。或者两者兼而有之。我不是程序员,我是DojoToolkit的新手 我有一个使用BorderContainer布局的站点。我正在尝试创建一种效果,我可以使用一个按钮打开和关闭一个包含控件的下拉框。我需要在页面加载时隐藏此下拉列表,然后在单击按钮时打开 我的问题是,当我打开下拉列表时,它会将其下方的内容窗格推离浏览器窗口的底部。当下拉菜单打开时,我需要下方的ContentPane保持在浏览器窗口的剩余空间内。此外,

几周来我一直在努力破解这个难题,所以我不确定这是不可能的,还是因为我缺乏编码能力。。。或者两者兼而有之。我不是程序员,我是DojoToolkit的新手

我有一个使用BorderContainer布局的站点。我正在尝试创建一种效果,我可以使用一个按钮打开和关闭一个包含控件的下拉框。我需要在页面加载时隐藏此下拉列表,然后在单击按钮时打开

我的问题是,当我打开下拉列表时,它会将其下方的内容窗格推离浏览器窗口的底部。当下拉菜单打开时,我需要下方的ContentPane保持在浏览器窗口的剩余空间内。此外,我希望下拉列表位于其下方内容的可滚动容器的外部,这就是为什么我将其设置为位于其下方嵌套的BorderContainer的外部

我已经创建了一个简化版本的代码来演示我的挑战(参见下面的链接)。如果加载页面,您可以看到中心内容窗格滚动内容。但是,如果单击该按钮,将在内容上方展开一个下拉div。然后当你滚动时,你会注意到你看不到完整的窗格,因为它在浏览器窗口底部的无人地带。我假设,因为div被设置为display:noneonload,所以它的大小在页面加载时不被考虑。然后,当您按下按钮打开它时,它的大小是相加的,下面的窗格不知道如何调整大小或说明新元素

我尝试过使用visibility属性,但是当div仍然关闭时,它会留下一个空白。我已经修改了一些代码来控制显示承诺的高度,但是我的每个下拉框都有不同的大小,所以我更喜欢将高度设置为“自动”,而不是指定的像素大小

有没有人知道我如何做到这一点,使较低的窗格可以在不推开屏幕的情况下放入空间

以下是该页面的示例:

(我在尝试将整个HTML页面作为代码示例插入此处时遇到了一些问题,因此如果这是更好的处理方法,并且有人可以告诉我嵌入所有代码的最佳方法,我将不胜感激。)


感谢您的支持,我真的很感谢大家的反馈。

您可能想看看
dojox.layout.ExpandoPane
(不过请注意,我认为它只在顶部和左侧区域正常工作了一段时间)

此外,我建议简化/改变一下布局。请参见此处的示例:

(可能需要一些调整才能得到您想要的东西。)


您遇到的真正问题可能是BorderContainer不知道视图的某些部分已调整大小。ExpandoPane通过告诉BorderContainer在其动画完成后重新布局来解决这个问题。

您可能想看看
dojox.layout.ExpandoPane
(不过请注意,我认为它只在顶部和左侧区域正常工作了一段时间)

此外,我建议简化/改变一下布局。请参见此处的示例:

(可能需要一些调整才能得到您想要的东西。)


您遇到的真正问题可能是BorderContainer不知道视图的某些部分已调整大小。ExpandoPane通过告诉BorderContainer在其动画完成后重新布局来解决这一问题。

我建议取出所有BorderContainer,但顶层容器除外,即以mainPage为id的容器

用关闭/打开按钮将{stuff here}div放在ContentPane之后的mainPage BorderContainer中。确保设置为dojotype dijit.layout.ContentPane,设置layoutpriority,并将region设置为top。单击打开/关闭按钮时,将高度设置为0/x,而不是设置显示


请再试一次。如果这还不能解决问题,您可能需要调用layout、resize或两者,以向BorderContainer指示它需要计算其所有子项并正确调整“中心”窗格的大小。类似dijit.byId(“主页”).layout()的内容;在您更改任何BorderContainer子对象的高度后,每当有人按下“关闭/打开”按钮时,请执行此操作

我建议取出所有的bordercontainer,除了顶级容器,即以mainPage作为id的容器

用关闭/打开按钮将{stuff here}div放在ContentPane之后的mainPage BorderContainer中。确保设置为dojotype dijit.layout.ContentPane,设置layoutpriority,并将region设置为top。单击打开/关闭按钮时,将高度设置为0/x,而不是设置显示


请再试一次。如果这还不能解决问题,您可能需要调用layout、resize或两者,以向BorderContainer指示它需要计算其所有子项并正确调整“中心”窗格的大小。类似dijit.byId(“主页”).layout()的内容;在您更改任何BorderContainer子对象的高度后,每当有人按下“关闭/打开”按钮时,请执行此操作

也许这本书适合你的需要。单击该按钮时,将显示一个工具提示,可以用所需的任何内容填充该提示。正如您所指定的,下拉工具提示仅在单击按钮时显示,并且根本不会影响基础布局。工具提示位于页面的“顶部”。

可能适合您的需要。单击该按钮时,将显示一个工具提示,可以用所需的任何内容填充该提示。正如您所指定的,下拉工具提示仅在单击按钮时显示,并且根本不会影响基础布局。工具提示位于页面的“顶部”。

它在IE8.0下工作。当下拉框打开时,只需在页面上按住鼠标并拖动到底部,就可以看到内容被推出页面。看起来浏览器无法检测到它,并且无法