0

//ここでは、ボタン タップ イベントでオーバーレイを作成し、ContentEl:'' を使用して別のビューをロードしています。オーバーレイはアニメーションで正常に機能しますが、ユーザーがそのオーバーレイで特定のアイテムを選択したときに、このオーバーレイをアニメーションで非表示にする必要があります。

if (!this.overlay) {

        this.overlay = Ext.Viewport.add({
            xtype: 'panel',
            id:'menuOverlayView',
            modal: true,
            hideOnMaskTap: true,
            centered: true,
            scroll: 'vertical',
            autoDestroy:false,
            floating: true,
            showAnimation: {
                type: 'slide',
                duration: 4000,
                direction:'down'
            },
           hideAnimation: {
                type: 'slide',
                duration: 4000,
                direction:'up'
            },
            contentEl:'menuViewid',
            top: Ext.os.deviceType == 'Phone' ? '20%' : '20%',
            width: Ext.os.deviceType == 'Phone' ? 260 : 700,
            height: Ext.os.deviceType == 'Phone' ? 220 : 600
        });
    }

    this.overlay.show();

// コントローラーでこのオーバーレイを非表示にするコードは以下のとおりです。パネル ID にアクセスしてパネルを非表示にしていますが、パネルは上記のようにアニメーションで非表示にする必要があります

var overlayView=Ext.getCmp('menuOverlayView');       
 overlayView.setHidden(true);

//スムーズに上にスクロールしてパネルを非表示にするにはどうすればよいですか..私は文の下に書いていますが、エラーが発生して動作していません

 overlayView.hideAnimation({type: 'slide', direction: 'up', duration:1000}); 
4

1 に答える 1

1

オーバーレイを非表示にするには、メソッドpanelを呼び出す必要がありますpanel's hide()

Ext.getCmp('menuOverlayView').hide();

hideAnimation次に、コードを試してください。

于 2012-06-07T09:15:23.333 に答える