简单的效果图:

Extjs 实现menu居中效果(仿弹窗)_点击事件

 

实现方法:

在button的点击事件中添加以下关键代码:

            var menu = Ext.getCmp("databaseMenu");
            var menuWidth = Ext.getCmp("
databaseMenu").getWidth();
            var menuHight = Ext.getCmp("
databaseMenu").getHeight();
            var fatherWidth = Ext.getCmp("
databaseMenu").ownerCt.getWidth();
            var fatherHeight = Ext.getCmp("
databaseMenu").ownerCt.getHeight();
            var fatherPosition = Ext.getCmp("
databaseMenu").ownerCt.getPosition();
            var menuPositionX = fatherPosition[0] + (fatherWidth-menuWidth)/2;
            var menuPositionY = fatherPosition[1] + (fatherHeight-menuHight)/2;
            menu.showAt([menuPositionX,menuPositionY]);

 

注:其中 databaseMenu 是这个menu的id