吐司在煎茶触摸中的实现
Toast implementation in Sencha Touch
我正在使用具有不同Toasts的Sencha Touch应用程序来显示"成功"或"信息"等消息,但是我有随机行为,例如:
1º 如果您使用 Toast 在一个操作中导航应用程序,并且在 Toast 启动时导航到其他屏幕,则 Toast 具有获取最后一种颜色而不是更改的随机行为。(在颜色相同但消息不同的测试用例中,请您阅读代码)
2º 有时吐司没有出现,我没有解释。
关于代码的任何建议? 目前它是一个单例类,根据操作从应用程序的其他部分/控制器调用它。
另一方面,还有其他具有类似行为的方法吗? 也许需要改变策略而没有用 Toasts。
它发生在Windows 8和iOS中,我使用的是2.4.1版本,阅读2.4.2的发行说明没有关于框架的这个元素的消息,我想与更新到最新的框架版本无关。
这是我的吐司经理课:
/**
* Loading popup as a static-functions class
*
* Different toast-messages colors:
* 0 --> green
* 1 --> orange
* 2 --> red
*
* We create a config object and depending of the status we show a Toast
*/
Ext.define('xx.view.components.ToastManager', {
singleton : true,
requires : [
'Ext.Toast'
],
config : {
toastOptions: {
message : '',
centered : false,
width : 200,
height : 100,
bottom : '10%',
modal : false,
right : 10,
style : '',
type : 'slide', duration: 850, easing: 'ease-out',
hideAnimation: {type: 'fadeOut', duration: 650, easing: 'ease-out'},
timeout : 3000
},
toastComponent : null,
t : null
},
constructor : function () {
this.initConfig();
},
changeVisibility: function() {
if(this.getT()) {
clearTimeout(this.getT());
}
var toastes = Ext.query('.x-toast');
for(var i = 0; i < toastes.length; i++) {
Ext.get(toastes[i]).setStyle('visibility', 'visible');
}
var t = setTimeout(function() {
var toastes = Ext.query('.x-toast');
for(var i = 0; i < toastes.length; i++) {
Ext.get(toastes[i]).setStyle('visibility', 'hidden');
}
}, 4000);
this.setT(t);
},
/**
* Shows a successful message
* @param label
* @param status
*/
showToastMessage : function (label, status) {
var options = this.getToastOptions();
options.message = label;
switch (status) {
case 0:
options.style = 'background-color: #30B420';
break;
case 1:
options.style = 'background-color: #FFA500';
break;
case 2:
options.style = 'background-color: #ff0000';
break;
default:
options.message = "?"
}
this.changeVisibility();
this.setToastComponent(Ext.toast(this.getToastOptions()));
}
});
我正在将这个函数用于我的吐司消息(虽然在 ExtJS 中):
showToastMessage: function(message, alignTo){
Ext.toast({
cls: 'toast-window',
header: false,
html : '<div class="toast">' + message + '</div>',
animate: true,
slideInAnimation: 'ease',
slideInDuration: 300,
slideOutDuration: 200,
autoCloseDelay: 1500,
align: alignTo ? alignTo : 't'
});
}
您可以将一些 css 应用于toast-window
和toast
类,以使您的消息看起来不错。
您只需将消息传递给此函数,它应该会显示一个不错的吐司!
相关文章:
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 触摸移动时切换到新元素
- 如何实现此布局
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- 实现一个建立在google.com之上的自定义搜索引擎
- 多个组件是如何实现的
- window.location使用jquery mobile实现chrome跳转
- 使用触摸启动导航下拉菜单,以实现 IOS 功能
- 如何使用Jquery/Javascript在运行Windows的PC上实现触摸功能
- 我想为一个网站实现触摸手势
- 如何使用paper.js实现多点触摸交互
- 如何实现一个在触摸时展开(和折叠)的文本框?
- 如何用javascript在iOS上实现触摸事件
- 吐司在煎茶触摸中的实现