【问题标题】:extjs3 dropdown menu adjust positioningextjs3 下拉菜单调整定位
【发布时间】:2014-08-12 15:39:11
【问题描述】:
            var tpl = new Ext.XTemplate(
                '<tpl for=".">',
                '<div class="thumb-wrap">',
                '<img src="../images/warning.png" style="vertical-align: middle;" title="Warning">',
                '<span class="x-editable" style="margin-left: 3px;">{text}</span></div>',
                '</tpl>',
                '<div class="x-clear"></div>'
            );

            var msg = store.proxy.lastDataTableObject.logMessages;                
            var topToolbar = this.gridPanel.topToolbar;

            if (msg && msg.length > 0) {                    
                //Warning Messages menu
                topToolbar.insert(topToolbar.items.items.length - 1,{
                    text: "Warning Messages",
                    menu: {
                        xtype: 'menu',
                        autoScroll: true,
                        maxHeight: 200,
                        items: [
                            new Ext.DataView({
                                store: new Ext.data.SimpleStore({data: msg, fields: ['text']}),
                                tpl: tpl,
                                autoWidth: true,
                                multiSelect: true,
                                overClass: 'x-view-over',
                                itemSelector: 'div.thumb-wrap',
                                emptyText: 'No warnings to display'
                            })
                        ]
                    }
                });
                topToolbar.doLayout();

我制作了这个菜单,里面有一个 DataView。我的最终目标是添加 maxHeight 并使下拉元素的右上角始终锚定到按钮元素的右下角。

目前情况如下:

在固定高度的情况下,锚定问题仍然存在,但至少菜单会按照应有的方式下降:

【问题讨论】:

    标签: javascript html extjs drop-down-menu extjs3


    【解决方案1】:

    您可以在工具栏按钮上使用menuAlign 配置,其值为tr-br,这将使您的元素(在您的情况下为菜单)的右上角与目标(在您的情况下为按钮)的底部对齐右上角。

    if (msg && msg.length > 0) {
        topToolbar.insert(topToolbar.items.items.length - 1,{
            text: "Warning Messages",
            menuAlign: 'tr-br',  // Add this line here
            menu: {
                xtype: 'menu',
                ...
            }
        });
        topToolbar.doLayout();
    }
    

    这是基于您的代码的working example on Sencha's fiddle site,供您参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 2016-02-14
      • 1970-01-01
      • 2016-06-14
      • 2015-03-14
      相关资源
      最近更新 更多