浏览器调整大小后,Ext Window不会进入中心位置

时间:2017-01-06 10:09:22

标签: javascript iframe extjs extjs6-classic

我有一个窗口,在浏览器调整大小后没有进入中心。当我调整浏览器的大小时,窗口的一半会消失

var Win,
    ViewPort = Ext.getBody(),
    winWidth = ViewPort.getWidth(),
    winHeight = ViewPort.getHeight();
Win = new Ext.IframeWindow({
                        id: 'H1',
                        modal: true,
                        resizable: true,
                        title: 'H1',
                        closable: true,
                        constrain : true,
                    });
    Win.width = (winWidth / 100) * 90,
    Win.height = (winHeight / 100) * 90,

当我给出宽度和高度一定百分比时,如

Win.width = '80%',
Win.height = '90%',

在这种情况下即将到来。但由于窗口上的数据和布局调整,我不想要。

3 个答案:

答案 0 :(得分:4)

您可以尝试以下代码段: -

  1. 使用窗口ID:

    Ext.getBody().el.dom.onresize = function() { if(Ext.getCmp('your_window_id')) { Ext.getCmp('your_window_id').center(); } }

  2. 使用window itemId:

    Ext.getBody().el.dom.onresize = function() { if(Ext.ComponentQuery.query('#your_window_id')[0]) { Ext.ComponentQuery.query('#your_window_id')[0].center(); } }

  3. 希望这可以帮助你:)

答案 1 :(得分:2)

在这种情况下,你需要获得调整大小的浏览器的新视口(根据你的代码),然后你必须为win设置新的宽度和高度。

以下是您可以使用的方法

window.onresize=function(obj){
    var viewport =  Ext.getBody();
    var H1Window = Ext.getCmp('H1');
    var H1WindowWidth = viewport.getWidth();
    var H1WindowHeight = viewport.getHeight();
    if(H1Window){
        H1Window.setWidth((bioMarkerWindowWidth / 100) * 90);
        H1Window.setHeight((bioMarkerWindowHeight / 100) * 90);
    }
}

答案 2 :(得分:-1)

使用anchorTo方法取一个looke。这应该有效:

win.anchorTo(Ext.getBody(), win.defaultAlign);