在Sencha Touch 2中制作动画尺寸

kmc*_*kmc 4 extjs sencha-touch sencha-touch-2

我正在尝试为数据视图的高度设置动画,但它目前只是在视口周围滑动面板而不是将其保持在原位并改变它的高度.代码如下:

Ext.Anim.run(el, 'slide', {
  from: { height: height },
  to: { height: newHeight },
  out: false,
  direction: 'up',
  easing: 'ease-out',
  duration: 1000
});
Run Code Online (Sandbox Code Playgroud)

例如,height = 200,newHeight = 100将导致数据视图立即下降,使其顶部位于视口下方200px处,然后动画回到视口顶部.

我怎样才能让它改变高度?谢谢.

rdo*_*gan 9

请尝试使用Ext.Animator.run:

Ext.Animator.run({
    element: dataview.element,
    duration: 500,
    easing: 'ease-in',
    preserveEndState: true,
    from: {
        height: dataview.element.getHeight()
    },
    to: {
        height: 100
    }
});
Run Code Online (Sandbox Code Playgroud)

在一个完整的例子中:

Ext.application({
    name: 'Sencha',

    launch: function() {
        var dataview = Ext.create('Ext.DataView', {
            fullscreen: true,
            style: 'background:red',
            store: {
                fields: ['text'],
                data: [
                    { text: 'one' },
                    { text: 'two' },
                    { text: 'three' }
                ]
            },
            itemTpl: '{text}'
        });

        Ext.Viewport.add({
            xtype: 'button',
            docked: 'top',
            handler: function() {
                Ext.Animator.run({
                    element: dataview.element,
                    duration: 500,
                    easing: 'ease-in',
                    preserveEndState: true,
                    to: {
                        height: 100
                    },
                    from: {
                        height: dataview.element.getHeight()
                    }
                });
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)