Ext秒表

显示分和秒

js

	Ext.define('xy.StopWatchWindow', {
extend: 'Ext.window.Window',
width: 300,
modal: true,
close:'hide',
layout: {
type: 'vbox',
align: 'stretch'
},
initComponent: function() {
var me = this;
me.store = Ext.create('Ext.data.Store',{
fields:['time']
}); me.grid = Ext.create('Ext.grid.Panel', {
emptyText: 'No Data',
height:300,
scrollable: 'y',
store:me.store,
columns :[{
text: 'Time',
dataIndex: 'time',
width: 240,
flex:1
},{
xtype: 'actioncolumn',
text: 'Delete',
align:'center',
items: [
{
getClass: function(v, metadata, record) {
return 'icon-delete'
},
scope: me,
handler: me.deleteTime
}
]
}]
}); this.items = [
{
html:'00:00',
height:40,
cls:'time-count-display',
itemId:'timeCountDisplay'
},
{
xtype:'container',
layout: {
type: 'hbox',
align: 'stretch'
},
items:[{
xtype: 'button',
flex:1,
text : 'Reset',
name:'restBtn',
handler: this.onResetClick,
disabled:true,
scope: me
},
{
xtype: 'button',
flex:1,
text : 'Start',
name:'startBtn',
action:'start',
handler: this.onStratClick,
scope: me
}]
},
me.grid]; me.countStartTime = null;
me.countDuration = 0;
me.changeTime = null;
me.countTime = 0; this.callParent(arguments);
},
onStratClick : function(btn){
var me = this;
if(btn.action == 'start'){
me.countStartTime = new Date();
me.changeTime = setInterval(me.changeStopWatch.bind(me),1000);
btn.action = 'stop';
btn.setText('Stop');
me.down('button[name="restBtn"]').setDisabled(false);
}else{
clearInterval(me.changeTime);
me.countDuration = me.countTime;
btn.action ='start';
btn.setText('Start');
me.down('button[name="restBtn"]').setDisabled(true);
}
},
onResetClick : function (){
var me = this;
me.store.add({time:me.secondToTime(me.countTime)}); clearInterval(me.changeTime);
me.countStartTime = new Date();
me.countDuration = 0;
me.countTime = 0; me.getComponent('timeCountDisplay').setHtml('00:00');
me.down('button[name="restBtn"]').setDisabled(true);
var startBtn = me.down('button[name="startBtn"]');
startBtn.action = 'start';
startBtn.setText('Start');
},
deleteTime:function(grid, rowIndex, colIndex, item, e, record){
var me = this;
me.store.remove(record);
},
changeStopWatch : function(){
var me = this;
var now = new Date();
var tempCount = (now.getTime() - me.countStartTime.getTime())/1000 + me.countDuration;
tempCount = Math.floor(tempCount * 100) / 100;
me.countTime = tempCount;
me.getComponent('timeCountDisplay').setHtml(me.secondToTime(tempCount));
},
secondToTime:function(time) {
var result = "";
if (null != time && "" != time && time > 0) {
//min
if (time >= 60) {
var tempMin = parseInt(time/ 60) ;
if(tempMin < 10){
tempMin = "0" + tempMin + ":";
}else{
tempMin = tempMin + ":"
}
result = result + tempMin;
}else{
result = result + "00:";
}
//second
var timeStr = time + "";
var tempSecond = parseInt(time%60); if(tempSecond < 10){
tempSecond = "0" + tempSecond;
}
result = result + tempSecond; }else{
result = "00:00";
}
return result;
}
});

css

	.time-count-display{
text-align: center;
} .time-count-display .x-autocontainer-innerCt {
vertical-align: middle;
font-size: 25px;
} .icon-delete {
background-image: url(../imgs/delete.png);
}

Ext秒表的更多相关文章

  1. Ext JS 如何动态加载JavaScript创建窗体

    JavaScript不需要编译即可运行,这让JavaScript构建的应用程序可以变得很灵活.我们可以根据需要动态从服务器加载JavaScript脚本来创建和控制UI来与用户交互.下面结合Ext JS ...

  2. sencha ext js 6 入门

    Sencha Ext JS号称是目前世界上最先进和最强大的.支持多平台多设备的JavaScript应用程序开发框架.首先看一下Ext JS的发展简史. 1 Ext JS发展简史 YUI-Ext的作者J ...

  3. Ext JS - 问答

    Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...

  4. Ext动态加载Toolbar

    在使用Ext的GridPanel时候,有时候需要面板不用重新加载而去更新Store或者Toolbar,Store的方法有很多,例如官方api给我们提供的Store.load(),Store.reLoa ...

  5. Ext分页实现(前台与后台)

    Ext分页实现(前台与后台)Spring+Mybatis 一.项目背景 关于Ext的分页网上有很多博客都有提到,但是作为Ext新手来说,并不能很容易的在自己的项目中得以应用.因为,大多数教程以及博客基 ...

  6. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...

  7. [转]extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法

    原文地址:http://379548695.iteye.com/blog/1167234 grid的复选框定义如下:   var sm = new Ext.grid.CheckboxSelection ...

  8. Ext.js细节:在MVC中处理Widget Column,GetCmp和ComponentQuery, Id和ItemId

    针对EXT.JS版本的演进,要不断的学习新的最佳实践方法. 比如,在定义组件时,尽管用itemid,而不是id. 在搜索组件时,尽量用ComponentQuery,而不是getCmp. 在MVC中处理 ...

  9. 2017年第1贴:EXT.JS使用MVC模式时,注意如何协调MODEL, STORE,VIEW,CONTROLLER的关系

    也调了快一天,死活找不到窍门. MODEL, STORE,VIEW的调置测试了很久,试了N种方法,不得其果. 最后,试着在APPLICATION里加入CONTROLLER, 在CONTROLLER里加 ...

随机推荐

  1. CountDownLatch——闭锁的实现之一

    CountDownLatch实际上是一种闭锁实现.闭锁:是一种同步工具类,可以延迟线程的进度知道其到达终止状态--<Java并发编程实战>.这个怎么解释呢?简单来说,就是有1个线程需要等待 ...

  2. H5水果机,一个网络版的lao hu ji

    该游戏为h5小游戏,纯属娱乐,技术探讨,相关技术在文章结尾,欢迎探讨交流 花了几天时间开发了这款水果lao hu ji,更新了几个版本,还有不足的地方,由于时间有限暂时没有继续更新新版本 未完成的功能 ...

  3. 浏览器兼容之Chrome浏览器: -webkit-text-size-adjust: none;

    今天在看demo的时候css样式里面发现的 -webkit-text-size-adjust: none; 度娘以后,了解这段样式的作用是:解决Chrome浏览器里面,设置小于12px的字体大小问题. ...

  4. collections 模块:更多数据结构

  5. Linux网络服务01——Linux网络基础设置

    Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...

  6. 从零开始的JS生活(三)——内置对象

    咱们继续进行我们的正经的JS介绍.今天所要跟大家讲述的是JS中十分常用.十分常用.十分常用的内置对象. 一.世界上最熟悉的陌生就是,当你看着数组.而我看着你... - 数组对象 1.数组的概念 在内存 ...

  7. 从零开始理解JAVA事件处理机制(2)

    第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事 ...

  8. WEB前端:浏览器(IE+Chrome+Firefox)常见兼容问题处理--03

    兼容问题目录 16.IE67下子级有相对定位,并且比父级要大.那父级overflow:hidden;后是包不住它的 17.IE6下同一层级的浮动元素会盖住绝对定位元素 18.IE6下定位父级的宽高是奇 ...

  9. [python标准库]Pickle模块

    Pickle-------python对象序列化 本文主要阐述以下几点: 1.pickle模块简介 2.pickle模块提供的方法 3.注意事项 4.实例解析 1.pickle模块简介 The pic ...

  10. VMware Workstation 11安装

    VMware Workstation 11序列号:1F04Z-6D111-7Z029-AV0Q4-3AEH8