javascript - 如何将 ExtJS 组件扩展到全屏并稍后恢复?

标签 javascript extjs

如何扩展 ExtJS(版本 3.3.1)组件,例如一个 Ext.Panel 嵌套在文档层次结构中的某个位置以“全屏”以便它占据整个浏览器窗口区域?我想我需要动态创建一个 Ext.Viewport 并重新设置正在“扩展”的组件的父级,但到目前为止我还没有成功。有人可以提供工作样本吗?

此外,如果可能的话,我希望能够在以后的某个时候将组件恢复到其原始位置。

我尝试了以下方法:

new Ext.Button({ text: 'Fullscreen', renderTo : Ext.getBody(), onClick: function(){
    var viewPort = new Ext.Viewport({
        renderTo: Ext.getBody(),
        layout: "fit",
        items: [ panelToBeExpanded ]
        });
    viewPort.doLayout();
}});

效果不是很好。单击按钮后,面板 panelToBeExpanded 似乎占据了视口(viewport)区域,但前提是 BODY 部分中没有 HTML,否则视口(viewport)不会完全展开。此外,之后使用重新设置父级的面板会在大多数浏览器中导致奇怪的闪烁。

是否有一种可靠的方法可以将组件普遍(最好是暂时)扩展到整个浏览器窗口?

更新

感谢评论中的建议,创建一个新的最大化的 Ext.Window 似乎是一个很好的解决方案。第二部分有点棘手 - 如何在关闭窗口后将重新设置父级的组件移回其在 DOM(和 ExtJS 组件层次结构)中的原始位置

感谢您的帮助!

最佳答案

你可以使用 Ext.Window.toggleMaximize方法。我创建了一个简单的工作示例,请查看 here

请注意 Ext.Window 在其呈现容器内最大化,因此如果您使用“renderTo”属性并将其设置为页面内的某个 div,Window 将仅与包含它的 div 一样大。这就是我使用文档主体来呈现 myWindow 的原因。当然你也可以使用 Ext.Window.xExt.Window.y配置属性以将您的窗口定位在需要的位置。

关于javascript - 如何将 ExtJS 组件扩展到全屏并稍后恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114313/

相关文章:

javascript - 扩展应用程序 : Uncaught TypeError: undefined is not a function

javascript - 如何在 wordpress 前端使用 ajax 保存帖子和自定义字段值?

javascript - 为什么这个javascript 'If... Else...'语句中没有比较语句

javascript - 如何通过继承引用基变量

javascript - 将鼠标悬停的元素数据与选择的每个元素中的数据进行比较

javascript - 如何使用 extjs 显示图像?

javascript - Ext JS 4 ux包在哪里

javascript - 如何在React Native中禁用YouTube视频末尾的相关视频

extjs - NGINX 与 spark Java 跨源通信

javascript - Ext js对齐文本框输入框