1

タイプ「ボーダー」のレイアウトがあり、「中央」パネルにはMapPanelがあります。以下のコードでモードレスポップアップを表示したい。ドラッグしてサイズを変更できます。

ただし、サイズ変更時に、ポップアップ領域の外側 (および MapPanel 領域の内側) でマウスをドラッグすると、このアクションを制御できなくなります (ポップアップ境界を表す点線が消えます)。しかし、MapPanel エリアの外側を「西」または「南」パネルにドラッグすることを主張すると、このアクションを再び制御できるようになります (点線が表示されます)。MapPanel がホバリングしているときにマウス コントロールを取得すると思います。この動作により、ポップアップのサイズ変更は可能ですが、少し面倒です。

ポップアップを表示するときに MapPanel を無効にすると、サイズ変更はうまく機能しますが、それは私が望むものではありません。モードレスポップアップを表示したい。

回避策について何か考えはありますか?...

var mapPanel = Ext.ComponentQuery.query('viewMapPanel')[0];
Ext.create('GeoExt.window.Popup', {
    map: mapPanel.map,
    title: 'test',

    frame: true,
    border: false,
    resizable: true,        
    draggable: true,
    closable: true,

  height: 400,
  width: 200,

  shadow: true,
  shadowOffset: 20,

  //modal:true


}).show();
4

2 に答える 2

1

GeoExt を使用したことはありません。しかし、私は使用しました: http://code.betancourt.us/ext-map/ xtype: 'gmappanel' で成功しました。通常の Ext.window を使用して layout: 'fit', items: {map} を実行するだけで、このような問題は発生しません。GeoExt を使用する代わりに、Ext.create('Ext.window.Window', { を使用して、レイアウトを選択できる通常のウィンドウをポップアップさせてから、mapPanel をアイテムに配置するだけで、おそらく同じことができると思います。

 var map = Ext.create('Ext.window.Window', {
        title: 'I love Maps',
        collapsible: true,
        animCollapse: true,
        maximizable: true,
        width: 950,
        height: 600,
        minWidth: 200,
        minHeight: 200,
        layout: 'fit',
        items: [{mapPanel}],
        dockedItems: [{
            xtype: 'toolbar',
            dock: 'bottom',
            ui: 'footer',
            layout: {
                pack: 'center'
            },
            items: [{
                minWidth: 80,
                text: 'Close',
                xtype: 'button'

            }]
        }]
    });
    map.show();
于 2014-07-25T18:03:31.453 に答える
0

デフォルトを使用する代わりに、カスタム OpenLayers マップを GeoExt マップ パネルに渡したと仮定します。そのマップのプロパティ「fallThrough」を true に設定して、イベントのバブリングを許可します。

var map = new OpenLayers.Map({
    fallThrough: true
});
于 2014-10-01T13:33:24.060 に答える