转自:http://tipx.iteye.com/blog/703746
Ext.ns('MyLib');
/**
* 右下角的小贴士窗口
* @author tipx
* @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:200,
height:150,
layout:'fit',
modal : false,
plain: true,
shadow:false, //去除阴影
draggable:false, //默认不可拖拽
resizable:false,
closable: true,
closeAction:'hide', //默认关闭为隐藏
autoHide:3, //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.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
}
});
})(MyLib);
调用:
Java代码
//其它参数参考Ext.Window的参数设置
var tipw = new MyLib.TipsWindow({
title:"小贴士",
autoHide:5, //5秒自动关闭
html:"fdasfdsa54f54"
});
tipw.show();
分享到:
相关推荐
最近小弟做了Extjs实现实现下拉框联动的效果,参考了好久才学会,闲下来发一个简单的例子。。呵呵
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...
在标题提到的"ExtJs消息提示框"中,我们关注的是如何在ExtJs应用程序中实现这些功能。通常,ExtJs的消息提示框并不内置于核心库中,而是作为扩展(ux)存在,例如在`Ext.ux.window.Notification-master`这个压缩包...
在实现这些功能时,开发者会利用ExtJs3的事件机制,通过监听和触发事件来协调各个组件间的交互。此外,ExtJs3的布局管理(Layout Manager)也是一大亮点,它支持各种自定义布局,如Fit、Border、Form等,确保了界面...
### ExtJS 多文件上传 UploadDialog For ExtJS3.x #### 概述 在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容...
在本文中,我们将深入探讨如何使用ExtJS 3.x实现多文件上传功能,结合Struts2框架进行数据处理。首先,我们需要确保环境配置正确。在描述中提到,我们需要将一系列Struts2相关的库文件复制到项目的`WebContent\lib`...
理解并掌握以上知识点,将有助于你在ExtJS 3环境中实现复杂的表头合并功能。不过,要注意,ExtJS 3已是一个较老的版本,对于新项目,可能需要考虑升级到更现代的版本,如ExtJS 7或Sencha Touch,它们提供了更丰富的...
extjs3中文手册 最新的extjs3版本的中文手册
默认情况下,ExtJS会自动在每个分组底部显示小计。如果你想要自定义小计的样式或行为,可以使用`summaryRenderer`函数。例如,你可以将小计格式化为货币值: ```javascript { text: '销售额', dataIndex: '...
在ExtJS中,这种功能主要通过`Ext.tree.TreePanel`或其现代版本`Ext.tree.View`来实现。 一、ExtJS 动态树基础 1. `Ext.tree.TreePanel`:这是ExtJS中用于创建树形结构的主要组件。它具有丰富的配置项和事件,支持...
本资源包包含了与ExtJS 3.4相关的学习资料,包括`Ext-core.pdf`、`轻松搞定Extjs.pdf`以及`Extjs学习笔记.docx`,旨在帮助初学者或有经验的开发者更好地理解和掌握ExtJS 3.4。 `Ext-core.pdf` 是关于Ext Core的文档...
标题“extjs 实现动态表头”表明我们要讨论的是如何在ExtJS环境中构建一个能够动态改变列头的表格。动态表头的核心在于理解ExtJS的GridPanel组件和ColumnModel类。GridPanel用于显示数据,而ColumnModel则定义了...
3. **实时通信**:由于ExtJS本身不支持实时通信,我们需要借助WebSocket或者Long Polling等技术实现消息的即时传输。WebSocket提供双向通信,可以实现实时的消息推送;而Long Polling则是一种模拟实时的解决方案,...
3. 数据绑定(Data Binding):通过Store和Model,ExtJS 3实现了数据和视图之间的双向绑定,使UI能够实时反映数据变化。 二、组件体系 1. 表格(Grid):ExtJS 3的表格组件支持多列、排序、分页、过滤等功能,并能...
在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列图形图标,这些图标用于增强应用程序的视觉效果,提供用户友好的操作指示。 1. **图标分类**: - 图标通常分为不同的类别,如操作图标(比如...
在这个目录下,你可能会找到`.js`文件,里面包含了实现上述功能的ExtJS代码,以及可能的HTML和CSS文件来展示这个应用。开发者可能通过阅读这些代码,了解如何将ExtJS组件和动画结合起来,以创建具有翻页效果的电子书...
在ExtJS中实现多行合并(rowspan)的效果,通常是为了在数据表格中展示具有层次结构的数据,或者在某些特定情况下需要对表格行进行合并,以优化数据的展示。这通常涉及到对表格(GridPanel)的配置和自定义。下面...
在“extjs实现增删查改”这个主题中,我们将探讨如何使用ExtJS来实现基本的数据操作功能。 首先,增删查改(CRUD,Create, Read, Update, Delete)是任何数据管理应用的核心功能。在ExtJS中,我们可以利用Grid ...
这本书籍“ExtJS3X最新中文书籍”显然是针对那些希望深入理解和应用ExtJS3X技术的中文读者设计的。 首先,我们要理解ExtJS的核心概念。它基于MVC(Model-View-Controller)模式,允许开发者将业务逻辑、数据展示和...
把皮肤文件解压 把css文件 如xtheme olive css 拷贝到extjs的resources目录下css文件夹里面:">extjs的默认皮肤很好看 但是我们还可以变换样式切换其他皮肤 1 直接添加其他css文件换肤 好多皮肤上网就可以收到的...