Extjs 右下角弹出框 可弹出多个 冒泡小窗体

本文介绍了一个基于Ext框架的自定义组件TipsWindow,该组件用于实现右下角小贴士窗口的功能。TipsWindow支持自动隐藏,并通过独立的窗口管理器确保始终显示在最前面。此外,还提供了调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TipsWindow对象声明

Ext.ns('Ext.ux'); /** * 右下角的小贴士窗口 * @author tipx.javaeye.com * @params conf 参考Ext.Window * conf中添加autoHide配置项, 默认3秒自动隐藏, 设置自动隐藏的时间(单位:秒), 不需要自动隐藏时设置为false * @注: 使用独立的window管理组(manager:new Ext.WindowGroup()), 达到总是显示在最前的效果 */ ; (function($) { //新建window组,避免被其它window影响显示在最前的效果 var tipsGroupMgr = new Ext.WindowGroup(); tipsGroupMgr.zseed = 99999; //将小贴士窗口前置 $.TipsWindow = Ext.extend(Ext.Window, { width: 500, height: 150, layout: 'fit', modal: false, plain: true, shadow: false, //去除阴影 draggable: false, //默认不可拖拽 resizable: false, closable: true, closeAction: 'hide', //默认关闭为隐藏 autoHide: 3, count:1,//设置显示的是第几个tipwindow //n秒后自动隐藏,为false时,不自动隐藏 manager: tipsGroupMgr, //设置window所属的组 constructor: function(conf) { $.TipsWindow.superclass.constructor.call(this, conf); this.initPosition(true); }, initEvents: function() { $.TipsWindow.superclass.initEvents.call(this); //自动隐藏 if (false !== this.autoHide) { var task = new Ext.util.DelayedTask(this.hide, this), second = (parseInt(this.autoHide) || 3) * 1000; this.on('beforeshow', function(self) { task.delay(second); }); } this.on('beforeshow', this.showTips); this.on('beforehide', this.hideTips); Ext.EventManager.onWindowResize(this.initPosition, this); //window大小改变时,重新设置坐标 Ext.EventManager.on(window, 'scroll', this.initPosition, this); //window移动滚动条时,重新设置坐标 }, //参数: flag - true时强制更新位置 initPosition: function(flag) { if (true !== flag && this.hidden) { //不可见时,不调整坐标 return false; } var doc = document, bd = (doc.body || doc.documentElement); //ext取可视范围宽高(与上面方法取的值相同), 加上滚动坐标 var left = bd.scrollLeft + Ext.lib.Dom.getViewWidth() - 4 - this.width; var top = bd.scrollTop + Ext.lib.Dom.getViewHeight() - 4 - this.height*this.count; this.setPosition(left, top); }, showTips: function() { var self = this; if (!self.hidden) { return false; } self.initPosition(true); //初始化坐标 self.el.slideIn('b', { callback: function() { //显示完成后,手动触发show事件,并将hidden属性设置false,否则将不能触发hide事件 self.fireEvent('show', self); self.hidden = false; } }); return false; //不执行默认的show }, hideTips: function() { var self = this; if (self.hidden) { return false; } self.el.slideOut('b', { callback: function() { //渐隐动作执行完成时,手动触发hide事件,并将hidden属性设置true self.fireEvent('hide', self); self.hidden = true; } }); return false; //不执行默认的hide } }); })(Ext.ux);

调用方法

var abc=0, tipw=[]; 加一个方法调用弹出 abcd = functon(){ tipw[abc] = new Ext.ux.TipsWindow( { title: "小贴士<a href="#" mce_href="#">电视发射塔</a>", autoHide: 5, count:abc+1,//设置弹出的是第几个 //5秒自动关闭 html: "这是提示" }); tipw[abc].show(); }

转载于:https://www.cnblogs.com/luhaiyan/archive/2011/04/15/2046617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值