Extjs панель resizer- после изменения размера - PullRequest
2 голосов
/ 01 ноября 2011

У меня есть панель extjs, размер которой можно изменить.Мне нужно рассчитать x и y положение панели после события изменения размера.пока я сделал это

Panel.resizer = new Ext.Resizable(Panel.el, {
animate: true,
                duration: '.6',
                easing: 'backIn',
                handles: 'all',
                constrainTo: 'dropBoxWindow',
                pinned: false,
                transparent: true
            });
        Panel.resizer.on("resize", function (oResizable, iWidth, iHeight, e) {
console.log(panel.el.getX()); // getting the x position before the resize..need to get position after resize.
            Panel.setHeight(iHeight);
            Panel.setWidth(iWidth);
        }, this);

Может кто-нибудь помочь мне исправить это

1 Ответ

2 голосов
/ 19 января 2012

Я не уверен, что именно вы пытаетесь достичь с помощью этого кода. Я создал js fiddle , который демонстрирует панель "изменяемого размера" (с анимированным переходом), это код, который я получаю в итоге:

new Ext.Panel({
    title: 'Resize me',
    x: 100,
    y: 100,
    renderTo: Ext.getBody(),
    floating: true,
    frame: true,
    width: 400,
    height: 200,
    listeners: {
        render: function(p) {
            new Ext.Resizable(p.getEl(), {
                animate: true,
                duration: '.6',
                easing: 'backIn',
                handles: 'all',
                pinned: false,
                transparent: true,
                resizeElement: function() {
                    var box = this.proxy.getBox();
                    if (this.updateBox) {
                        this.el.setBox(
                        box, false, this.animate, this.duration, function() {
                            p.updateBox(box);
                            if (p.layout) {
                                p.doLayout();
                            }
                        }, this.easing);
                    } else {
                        this.el.setSize(
                        box.width, box.height, this.animate, this.duration, function() {
                            p.updateBox(box);
                            if (p.layout) {
                                p.doLayout();
                            }
                        }, this.easing);
                    }
                    this.updateChildSize();
                    if (!this.dynamic) {
                        this.proxy.hide();
                    }
                    if (this.draggable && this.constrainTo) {
                        this.dd.resetConstraints();
                        this.dd.constrainTo(this.constrainTo);
                    }
                    return box;
                }
            });
        }
    }
});

Вам не нужно рассчитывать положение панели после изменения размера, но если вам действительно нужна эта информация для вашего пользовательского кода приложения, вы можете использовать переменную box внутри функции resizeElement.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...