仿网易邮箱5.0(四):信息提示插件(tips.js)
信息提示插件,在平常的开发中也是经常乃至的一个插件,像是一些辅助信息的提示,如:加载成功、提交信息成功或失败等等。这个插件在163邮箱中用在切换标签时提示加载状态。
下面我们先来分析一下这个小插件需要实现的一些接口:
1、显示时的停留时间,这个我们可以直接在实例化类时传递进去。
2、显示内容可更新,这样一来就可以在整个页面中仅创建一个实例,然后通过不断的更新内容来达到不同信息显示的效果。如:tips.update('msg');
3、显示,如果想实现内容可更新后再显示,就需要能够手动调用显示接口。如:tips.update('new msg').show();
4、隐藏,显示的时候我们可以直接立即隐藏。
5、删除,如果我们仅使用一次,或者是此操作之后页面中不再使用此插件,那么我们最好是从页面中移除而不仅仅是隐藏。
接下来我们看下源代码:
/**
* 信息提示插件
* @author Ly
* @date 2012/11/15
*/
;Neter.namespace('Neter.Tips'); /**
* @class
* @name Neter.Tips
* @param {Object} options 自定义配置信息,默认配置信息如下:
<pre>
options = {
container : document.body, // 信息提示框架放于哪个容器中进行显示,默认为body
msg : '', // 信息内容
showTime : 2000, // 提示信息显示时间,单位毫秒,默认为2000毫秒
type : 'success' // 提示框类型,success(绿色)、error(红色)、aside(灰色)、warning(棕色)
}
</pre>
*/
;Neter.Tips = function(options) {
var _this = this; this.defaults = {
container : document.body, // 信息提示框架放于哪个容器中进行显示,默认为body
msg : '', // 信息内容
showTime : 2000, // 提示信息显示时间,单位毫秒,默认为2000毫秒
type : 'success' // 提示框类型,success(绿色)、error(红色)、aside(灰色)、warning(棕色)
}; Neter.apply(this.defaults, options); this.handler = {
container : $(this.defaults.container),
tips : null
}; this.method = {
/**
* 创建框架
* @ignore
*/
create : function() {
var defaults = _this.defaults,
handler = _this.handler; handler.tips = $('<div></div>').addClass('neter-tips')
.html(defaults.msg)
.appendTo(defaults.container); return this;
}
};
}; ;Neter.apply(Neter.Tips.prototype, {
/**
* 渲染插件,渲染后仅是将插件添加到页面中,若要显示需调用show方法
* @function
* @name Neter.Tips.prototype.render
* @return {Neter.Tips} 返回插件的引用
*/
render : function() {
this.method.create(); return this;
},
/**
* 获取插件的DOM对象
* @function
* @name Neter.Tips.prototype.get
* @return {jQueryDOM} 返回当前插件的DOM对象,经过jQuery封装过。
*/
get : function() {
return this.handler.tips;
},
/**
* 更新插件的消息内容
* @function
* @name Neter.Tips.prototype.update
* @param {String} msg 消息内容
* @return {Neter.Tips} 返回插件的引用
*/
update : function(msg) {
this.defaults.msg = msg || this.defaults.msg; return this;
},
/**
* 显示插件
* @function
* @name Neter.Tips.prototype.show
* @param {String} [type] 指定信息框的类型,可以省略,省略则使用上次设置的类型
* @param {Boolean} [showType=false] 显示方式,默认为false,即以动画方式来显示,true为立即显示,并且不自动隐藏
* @return {Neter.Tips} 返回插件的引用
*/
show : function(type, showType) {
var defaults = this.defaults,
tips = this.handler.tips; if (!tips) { return this; } defaults.type = type || defaults.type; tips.html(defaults.msg)
.removeClass('neter-tips-success neter-tips-error neter-tips-aside neter-tips-warning')
.addClass('neter-tips-' + defaults.type)
.css({ marginLeft : -tips.outerWidth() / 2 }); if (showType) {
tips.css({ top : 0 }).show();
} else {
tips.animate({ top : 0 })
.delay(defaults.showTime)
.animate({ top : -tips.outerHeight() }, 'slow');
} return this;
},
/**
* 隐藏插件
* @function
* @name Neter.Tips.prototype.hide
* @return {Neter.Tips} 返回插件的引用
*/
hide : function() {
this.handler.tips && this.handler.tips.animate({ top : -this.handler.tips.outerHeight() }, 'slow'); return this;
},
/**
* 删除插件,删除后不能再调用show进行显示
* @function
* @name Neter.Tips.prototype.remove
* @return {Object} 返回null
*/
remove : function() {
this.handler.tips.empty().remove();
this.handler.tips = null; return null;
}
});
tips.js
这里面也没有什么值得说明的,代码比较简单,相信大家一看就明白。下面就列几种使用方法:
// 1. 直接创建并且显示
new Neter.Tips({ msg : '提交成功'}).render().show(); // 2. 指定类型,支持:success(绿色)、error(红色)、aside(灰色)、warning(棕色)
new Neter.Tips({ msg : '提交数据失败', type : 'error' }).render().show(); // 3. 使用图片作为显示内容
new Neter.Tips({ msg : $('<img>').attr('src', 'info.png') }).render();
也可以从这里单击下载示例文件。
仿网易邮箱5.0(四):信息提示插件(tips.js)的更多相关文章
- [js插件]分享一个文章内容信息提示插件Colortip
引用 项目中需要一个信息提示的功能,就上网找了一个插件,发现colortip实现比较简单,就定了这个插件. 实现过程 官网:http://tutorialzine.com/2010/07/colort ...
- 消息提示插件toastr.js与Messenger组件
Toastr是一款基于jQuery的通知插件,可以灵活的自定义样式和拓展其功能! toastr是一个基于Jquery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. cdn最 ...
- 帝国cms7.0修改“信息提示”框
具体修改查看e/message/index.php文件 上传一张合适用的图 <table width="600" height="224" border= ...
- HTML自定义滚动条(仿网易邮箱滚动条)转载
它是使用CSS中的伪元素来实现的,主要由以下三个来完成: 1. -webkit-scrollbar:定义滚动条的样式,如长宽. 2. -webkit-scrollbar-thumb:定义滚动条上滑块的 ...
- JavaScript右下角信息提示插件Notyf
在线演示 本地下载
- 自制微信小程序 提示插件 -- noticeUitis.js
/* noticeMsg.js by: FEer_llx Modify 2016/08/24 */ function weNotice(obj) { this.fadeFlag = true; thi ...
- 弹出框以及提示插件lghdialog.js的使用
以下使用方法 swfupload的使用
- jNotify:操作结果信息提示条
我们在提交表单后,通过Ajax响应后台返回结果,并在前台显示返回信息,jNotify能非常优雅的显示操作结果信息.jNotify是一款基于jQuery的信息提示插件,它支持操作成功.操作失败和操作提醒 ...
- office文件在线预览,模仿网易邮箱在线预览的
最近研究了半天,代码是倾情奉送啊,C#,asp.net的 这个原理是office文件转换为PDF文件,然后再转换成SWF文件,FlexPaper+swfTools. 有个问题,需要在web.confi ...
随机推荐
- python标准库-日志logging
1.模块级别 先看一下logging模块的日志级别特点,共分6个等级. 可以手工设置当前日志的默认等级(warn),当日志输出的等级高于默认等级时,日志输出到屏幕,否则不输出. #!/usr/bin/ ...
- 你真的会使用XMLHttpRequest吗?
看到标题时,有些同学可能会想:“我已经用xhr成功地发过很多个Ajax请求了,对它的基本操作已经算挺熟练了.” 我之前的想法和你们一样,直到最近我使用xhr时踩了不少坑儿,我才突然发现其实自己并不够了 ...
- vs 2012svn 插件设置
- Nutz 第一个Demo
Nut 是什么 我这就不多解释 知道是个javaweb框架 如想仔细了解请移步管网 http://nutzam.com/ 一.项目结构(直接看图 ) 需要注意的是 src和conf 都为源码包 con ...
- iOS 为label添加删除线
UILabel *testLabel = [[ UILabel alloc] initWithFrame:CGRectMake(, , , )]; testLabel.numberOfLines = ...
- HUST 1601 Shepherd
间隔小的时候dp预处理,大的时候暴力..正确做法不会... dp[i][j]表示以i为开头,间隔为j的和,递推:dp[i][j] = dp[i + j][j] + a[i] 测试数据中间隔可能是0.. ...
- CSharp笔记>>>多语言,注册
C#多语言 方案1:http://blog.csdn.net/suncherrydream/article/details/43234059 http://blog.itpub.net/1263917 ...
- c++读取REG_MULTI_SZ类型注册表
First: run RegQueryValueEx to get type and necessary memory size: Single byte code: DWORD type, size ...
- Android SQLite 加密模块实现入门
安卓的安全性那是众所周知,最近学习安卓apk反编译,发现某些即时通讯软件都封装了自己独立使用的数据库模块(从framework java/C++ 一直到底层的SQLite的C库), 为了防止被root ...
- IOS 股票K线图、分时图
IOS 股票K线图.分时图,网上开源项目很少,质量也是参差不齐:偶尔搜索到看似有希望的文章,点进去,还是个标题党:深受毒害.经过一段时间的探索,终于在开源基础上完成了自己的股票K线图.分时图: 先放出 ...