sencha touch 简单的倒计时插件
效果如图:
代码:
Ext.define('ux.label.Countdown', {
alternateClassName: 'labelCountdown',
extend: 'Ext.Component',
xtype: 'labelCountdown',
config: {
baseCls: Ext.baseCSSPrefix + 'label',
format: 'Y-m-d H:i:s',
value: null
},
initialize: function () {
this.callParent();
this.on({
hide: 'stop',
scope: this
});
},
stop: function () {
console.log('停止计时');
clearInterval(this.task);
this.isStart = false;
},
start: function () {
var me = this;
if (!me.isStart && me.time) {
console.log('开始计时');
me.isStart = true;
me.task = setInterval(function () {
me.timing(me);
},1000);
me.timing(me);
}
},
updateValue: function (time,old) {
//console.log(time);
var me = this;
if (time) {
time = Ext.Date.parse(time, me.getFormat());
if (time) {
me.time = time;
me.start();
}
}
},
timing: function (me) {
if (!me.time) {
clearInterval(me.task);
console.log('停止计时');
} else {
var now = new Date(),
ms = me.time - now,
//计算出开始时间和现在时间的时间戳差
day = Math.floor(ms / (1000 * 60 * 60 * 24)),
//天数
hour = Math.floor(ms / (1000 * 60 * 60)) % 24,
//小时
minute = Math.floor(ms / (1000 * 60)) % 60,
//分钟
second = Math.floor(ms / 1000) % 60,
//秒
label;
if (ms > 0) {
console.log('正在计时');
if (day > 0) {
label = util.format('剩余{0}天{1}小时{2}分{3}秒', day, hour, minute, second);
} else if (hour > 0) {
label = util.format('剩余{0}小时{1}分{2}秒', hour, minute, second);
} else if (minute > 0) {
label = util.format('剩余{0}分{1}秒', minute, second);
} else if (second >= 0) {
label = util.format('剩余{0}秒', second);
}
me.setHtml(label);
} else {
console.log('计时结束');
me.setHtml('已结束');
me.fireEvent('end', me);
clearInterval(me.task);
}
}
}
});
使用:
xtype: 'labelCountdown',
//format默认格式
format: 'Y-m-d H:i:s',
//这里需要和上面的format对应,否则无法转换成时间,其他参数和lable相同
value: '2014-01-01 23:21:45'
注意根据情况调用start和stop方法,以免陷入无限循环
sencha touch 简单的倒计时插件的更多相关文章
- sencha touch 类的使用
sencha touch 有一套自己的类机制,可以以面向对象的方式去写代码,封装业务逻辑,sencha touch 的组件.插件.api等都建立在这一套类机制的上面 在实际开发中,我们需要遵循这一套机 ...
- 动端逐渐出了许多的移动端的框架,比如Sencha Touch、JQTouch、Jquery-moblie、jqMobi等等。这些框架都有优缺点,不同的框架应用在不同的项目中。现简单阐述一下各框架的优缺点:
移动前端工作的那些事---前端制作之微信小技巧篇 (2013-11-15 15:20) 转载▼ 标签: it css3/javascript html5 webapp 手机网站搭建 分类: 前端制 ...
- [Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容
原文地址:http://blog.csdn.net/lovelyelfpop/article/details/50848524 插件地址:https://github.com/nordnet/cord ...
- sencha touch 2.2 为list PullRefresh插件添加refreshFn方法
sencha touch 2.2 list PullRefresh插件没有refreshFn方法 但是我们又需要他,所以需要自行扩展 代码如下 /** * 重写下拉刷新插件,以支持refreshFn事 ...
- SenCha Touch 与 EXTJS 安装Myeclipse 插件
http://www.cnblogs.com/jirimutu01/default.html 关于SenchaEclipsePlugin插件的安装和使用 使用过eclipse开发java程序的人都知道 ...
- [Phonegap+Sencha Touch] 移动开发76 让cordova app訪问远端站点也能调用cordova插件功能
原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50735395 我相信.应该会有一些cordova开发人员想过实现以下这种app: 使用 ...
- sencha touch的开源插件和例子
写了好久的sencha touch,没想到换工作竟然一年多没有搞了.因为项目的缘故收集了好多的组件,由于懒惰,没有整理,现在想想有点后悔了,再加上如果就这样丢弃,感觉有些遗憾,今天整理了一下放在git ...
- js 简单倒计时插件和使用方法
// 倒计时插件 (function (){ function countdown(config){ var startDate = config.start ? new Date(config.st ...
- 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP
参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用 经过差不多1 ...
随机推荐
- css 垂直居中,指定文本宽度换行,指定高度出滚动条
!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g ...
- Centos下查看cpu、磁盘、内存使用情况以及如何清理内存
核查服务器基本情况 查看内存使用情况 free -m 查看cpu使用情况 top #查看进程运行情况 查看磁盘以及分区情况 df -h 查看网络情况 ifconfig 查看端口使用情况 #1.方法一 ...
- Docker命令之 cp
docker cp :用于容器与主机之间的数据拷贝. 语法 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] ...
- Godray
软管的这个有点蛋疼..应该是我材质没弄好 最后发现不是材质,是法线不正确,调整后
- drools研究后记
在实际工作中,有关于达标推断的业务逻辑 就是谁谁谁 消费满了多少钱.就返多少钱的优惠券 声明:不是drools不好,仅仅是在我遇到的场景下,不合适,不够好 在使用drools的时候发现有例如以下问题: ...
- hive kettle 学习笔记
学习网址 http://wiki.pentaho.com/display/BAD/Transforming+Data+within+Hive
- npm安装包卡住不动的解决
最近诸事不顺,今天更新/安装nodejs各种包也全都卡在各个环节,用ie设了全局代理貌似也没什么改观,于是到网上找找有没有国内镜像站,倒是发现了cnpmjs.org这个网站被推荐比较多,看他们主页,他 ...
- 前端如何获取http状态码400的返回值
axios.get("/check_mobile_and_sent_code",{withCredentials:true,params:{mobile:formInline.mo ...
- cakephp文件结构
一个项目的开发会用到cakephp的那些文件呢? 如果你的项目使用cake1.3.6,那么可以参考下面的内容 根据我的经验,会涉及一下文件夹: config controllers models ...
- Android开发学习笔记-自定义组合控件
为了能让代码能够更多的复用,故使用组合控件.下面是我正在写的项目中用到的方法. 1.先写要组合的一些需要的控件,将其封装到一个布局xml布局文件中. <?xml version="1. ...