ExtJs 实现类似QQ的提示消息框

 

 

ExtJs实现类似QQ的提示消息框

 

 

1 扩展Ext.Window控件

 

Ext.namespace("Ext.ux");

Ext.ux.SysMsgWindowManager = {

    positions: []

};

 

Ext.ux.SysMsgWindow = Ext.extend(Ext.Window, {

    setTitle: function(title, iconCls){

       Ext.ux.SysMsgWindow.superclass.setTitle.call(this, title, iconCls||this.iconCls);

    },

    setMessage: function(msg){

       this.body.update(msg);

    },

    initComponent: function(){

       Ext.apply(this, {

           iconCls: this.iconCls || 'information',

           width: 250,

           height: 150,

           autoScroll: true,

           autoDestroy: true,

           plain: false,

           shadow:false

       });

       this.task = new Ext.util.DelayedTask(this.hide, this);

       Ext.ux.SysMsgWindow.superclass.initComponent.call(this);

    },

    onRender:function(ct, position) {

       Ext.ux.SysMsgWindow.superclass.onRender.call(this, ct, position);

    },

    onDestroy: function(){

    Ext.ux.SysMsgWindowManager.positions.remove(this.pos);

        Ext.ux.SysMsgWindow.superclass.onDestroy.call(this);

    },

    afterShow: function(){

    Ext.ux.SysMsgWindow.superclass.afterShow.call(this);

        this.on('move', function(){

        Ext.ux.SysMsgWindowManager.positions.remove(this.pos);

            this.task.cancel();

        }, this);

        this.task.delay(4000);

    },

    animShow: function(){

        this.pos = 0;

        while(Ext.ux.SysMsgWindowManager.positions.indexOf(this.pos)>-1)

        this.pos++;

        Ext.ux.SysMsgWindowManager.positions.push(this.pos);

        this.setSize(250,150);

        this.el.alignTo(document, "br-br", [ -10, -10-((this.getSize().height+10)*this.pos) ]);

        this.el.slideIn('b', {

        duration: 2,

        callback: this.afterShow,

        scope: this

        });   

    },

    animHide: function(){

         Ext.ux.SysMsgWindowManager.positions.remove(this.pos);

        this.el.ghost("b", {

            duration: 2,

            remove: true,

            scope: this,

            callback: this.destroy

        });

    }

});

 

 

 

2 调用方法

 

<script type="text/javascript">

    Ext.onReady(function(){

       Ext.get('alert').on('click',function(){

           new Ext.ux.SysMsgWindow({

              title: '提示窗口',

              html: '测试信息',

              iconCls: 'error'

           }).show(document);

        });    

    });

</script>

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值