anima-toast
Advanced tools
Comparing version 1.0.5 to 1.0.6
@@ -5,4 +5,12 @@ # History | ||
## 1.0.6 | ||
`fixed` 修复定位、定时器问题 | ||
## 1.0.5 | ||
`change` 升级yocto的依赖版本为semver | ||
## 1.0.0 | ||
`new` /toast First version. |
@@ -1,2 +0,1 @@ | ||
module.exports = require('./src/toast'); | ||
module.exports = require('./src/toast'); |
{ | ||
"name": "anima-toast", | ||
"version": "1.0.5", | ||
"version": "1.0.6", | ||
"description": "The best project ever.", | ||
@@ -27,5 +27,5 @@ "homepage": "http://gitlab.alibaba-inc.com/animajs/toast", | ||
"dependencies": { | ||
"anima-pop": "1.0.3", | ||
"anima-pop": "~1.0.0", | ||
"anima-yocto-lite": "~1.1.0", | ||
"import-style": "1.0.0" | ||
"import-style": "~1.0.0" | ||
}, | ||
@@ -32,0 +32,0 @@ "devDependencies": { |
184
src/toast.js
@@ -0,88 +1,120 @@ | ||
var $ = require('anima-yocto-lite'), | ||
Pop = require('anima-pop'); | ||
require('./toast.css'); | ||
var $ = require('anima-yocto-lite'), | ||
Pop = require('anima-pop'); | ||
require('./toast.css') | ||
var delayHandler = null; | ||
var Toast = Pop.extend({ | ||
attrs : { | ||
/** | ||
* 延迟隐藏的时间,显示后,默认2000ms自动隐藏 | ||
* @type {Number} | ||
*/ | ||
hideDelay : 2000, | ||
/** | ||
* 内容 | ||
* @type {String} | ||
*/ | ||
content : null, | ||
template : '<div class="am-toast" style="background-color: transparent;"></div>', | ||
effect : 'fade', | ||
align : { | ||
type : 'center' | ||
}, | ||
/** | ||
* toast 类型 | ||
* @type {String} | ||
*/ | ||
type : 'none' | ||
var Toast = Pop.extend({ | ||
attrs : { | ||
/** | ||
* 延迟隐藏的时间,显示后,默认2000ms自动隐藏 | ||
* @type {Number} | ||
*/ | ||
hideDelay : 2000, | ||
/** | ||
* 内容 | ||
* @type {String} | ||
*/ | ||
content : null, | ||
template : '<div class="am-toast" style="background-color: transparent;"></div>', | ||
effect : 'fade', | ||
align : { | ||
type : 'center' | ||
}, | ||
setup : function(){ | ||
var _self = this; | ||
Toast.superclass.setup.call(this); | ||
_self._intContent(); | ||
_self.bindDelayEvent(); | ||
}, | ||
/** | ||
* 更改内容和类型 | ||
* @param {String} content 内容 | ||
* @param {String} type 类型 | ||
* toast 类型 | ||
* @type {String} | ||
*/ | ||
change : function(content,type){ | ||
var _self = this; | ||
type : 'none' | ||
}, | ||
setup : function(){ | ||
var _self = this; | ||
type = type || _self.get('type'); | ||
_self.set({ | ||
content : content, | ||
type : type | ||
}); | ||
_self._intContent(); | ||
}, | ||
//初始化内容 | ||
_intContent : function(){ | ||
var _self = this, | ||
el = _self.element, | ||
tpl = _self._getInnerTpl(); | ||
el.html(tpl); | ||
}, | ||
//获取内部的模板 | ||
_getInnerTpl : function(){ | ||
var _self = this, | ||
content = _self.get('content'), | ||
type = _self.get('type'), | ||
iconCssTpl = type == 'none' ? '' : '<span class="am-toast-icon ' + 'am-icon-' + type + '"></span>', | ||
tpl = '<div class="am-toast-text">' | ||
+ iconCssTpl | ||
+ content | ||
+ '</div>'; | ||
Toast.superclass.setup.call(this); | ||
_self._intContent(); | ||
}, | ||
/** | ||
* 更改内容和类型 | ||
* @param {String} content 内容 | ||
* @param {String} type 类型 | ||
*/ | ||
change : function(content,type){ | ||
var _self = this; | ||
return tpl; | ||
}, | ||
//延迟隐藏事件 | ||
bindDelayEvent : function(){ | ||
var _self = this; | ||
_self.on('show',function(){ | ||
var delayHandler = _self.get('delayHandler'); | ||
this.changed = true; | ||
delayHandler && clearTimeout(delayHandler); | ||
delayHandler = setTimeout(function(){ | ||
_self.hide(); | ||
},_self.get('hideDelay')); | ||
}); | ||
type = type || _self.get('type'); | ||
_self.set({ | ||
content : content, | ||
type : type | ||
}); | ||
_self._intContent(); | ||
}, | ||
//初始化内容 | ||
_intContent : function(){ | ||
var _self = this, | ||
el = _self.element, | ||
tpl = _self._getInnerTpl(); | ||
el.html(tpl); | ||
}, | ||
//获取内部的模板 | ||
_getInnerTpl : function(){ | ||
var _self = this, | ||
content = _self.get('content'), | ||
type = _self.get('type'), | ||
iconCssTpl = type == 'none' ? '' : '<span class="am-toast-icon ' + 'am-icon-' + type + '"></span>', | ||
tpl = '<div class="am-toast-text">' | ||
+ iconCssTpl | ||
+ content | ||
+ '</div>'; | ||
return tpl; | ||
}, | ||
/** | ||
* 显示 | ||
*/ | ||
show : function(){ | ||
var _self = this, | ||
effect = _self.get('effect'); | ||
delayHandler && clearTimeout(delayHandler); | ||
_self.hide(); // 防止重复 | ||
if (!_self.rendered) { | ||
_self.render(); | ||
} | ||
}); | ||
if(effect == 'none'){ | ||
_self.set('visible',true); | ||
}else{ | ||
_self.animateEffectIn(effect); | ||
} | ||
module.exports = Toast; | ||
_self.changed && _self.resetAlign(); | ||
delayHandler = setTimeout(function(){ | ||
_self.hide(); | ||
},_self.get('hideDelay')); | ||
}, | ||
/** | ||
* 隐藏 | ||
*/ | ||
hide : function(){ | ||
var _self = this, | ||
effect = _self.get('effect'); | ||
if(!_self.get('visible') || _self.get('closing')){ | ||
return true; | ||
} | ||
if(effect == 'none'){ | ||
_self.set('visible',false); | ||
}else{ | ||
_self.animateEffectOut(effect); | ||
} | ||
} | ||
}); | ||
module.exports = Toast; |
9489
200
Updatedanima-pop@~1.0.0
Updatedimport-style@~1.0.0