JavaScript在控件上添加倒计时功能的实现代码


Posted in Javascript onJuly 04, 2017

一.概述

在有些 报表 需求中,需要为控件添加倒计时功能,限制到某一个时间点后能进行一项操作或不能进行某项操作,比如查询,导出功能等等,又需要人性化地显示还有多少时间,即倒计时功能,比如下图中我们限制这个报表在每天10点后才能查询 

JavaScript在控件上添加倒计时功能的实现代码

JavaScript在控件上添加倒计时功能的实现代码

当倒计时结束的时候,查询功能可用 

JavaScript在控件上添加倒计时功能的实现代码

这种功能如何实现的呢

二.实现思路

主要原理是利用控件的setEnable(true)/setEnable(false)来进行设置控件的可用与不可用状态,在获取时间的过程中,需要利用到JS中的获取时间,利用JS的定时器函数setInterval(function(){},time)来进行定时取得倒时时,并判断倒计时是否结束。

三 .实现过程

1、修改模板

以自带的gettingstarted.cpt模板为例,设置初始化时查询按钮不可用,如下图  

JavaScript在控件上添加倒计时功能的实现代码

2、添加倒计时控制功能

为了简化控制流程,把JS代码直接写在查询按钮的初始化后事件中,如下图

JavaScript在控件上添加倒计时功能的实现代码

代码如下:

var h= 10 ; //限制几点可查询 
 var m= 00 ; //限制几分可查询 
 var s= 00 ; //限制几秒可查询 
 //格式化时间 
 function timeToString(a){ 
  //小时 
  var s= '还有' 
  s+=parseInt(a/ 3600 )+ '时' ; 
  //分 
  s+=parseInt(a % 3600 / 60 )+ '分' ; 
  //秒 
  s+=parseInt(a % 60 )+ '秒可查' ; 
  return s; 
 } 
 var date1= new Date(); 
 var date2= new Date(); 
 //设置预置可查时间 
 date1.setHours(h); 
 date1.setMinutes(m); 
 date1.setSeconds(s); 
 //比如时间 
 var d=(date1-date2)/ 1000 ; 
 //如果初始化时可用,就启用按钮 
 if (d< 0 ){ 
  this .setValue( '查询' ); 
  this .setEnable( true ); 
 } else {  
  var btn= this ;  
  //显示倒计时时间 
  btn.setValue(timeToString(d)); 
  //设置不可用 
  btn.setEnable( false );  
  //定时器函数 
  setInterval(function(){ 
   //重新设置时间 
   date1= new Date();  
   date2= new Date(); 
   date1.setHours(h); 
   date1.setMinutes(m); 
   date1.setSeconds(s); 
   //重新当前时间与设定时间的时间差 
   d=(date1-date2)/ 1000 ; 
   if (d< 0 ){ 
   btn.setValue( '查询' ); 
   btn.setEnable( true ); 
   } else {  
   btn.setValue(timeToString(d)); 
   btn.setEnable( false );  
   } 
  }, 1000 ); 
 }

以上所述是小编给大家介绍的JavaScript在控件上添加倒计时功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js实现简单的星级选择器提交效果适用于评论等
Oct 18 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
Feb 26 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
JS中对Cookie的操作详解
Aug 05 Javascript
WEB开发之注册页面验证码倒计时代码的实现
Dec 15 Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 Javascript
JavaScript实现滑动导航栏效果
Aug 30 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
小程序开发基础之view视图容器
Aug 21 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
Aug 16 Javascript
JavaScript异步上传图片文件的实例代码
Jul 04 #Javascript
详解vue-router和vue-cli以及组件之间的传值
Jul 04 #Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 #Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 #Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
Jul 04 #Javascript
详解node如何让一个端口同时支持https与http
Jul 04 #Javascript
Angular 2父子组件之间共享服务通信的实现
Jul 04 #Javascript
You might like
php printf输出格式使用说明
2010/12/05 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
js的event详解。
2006/09/06 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
window.onload使用指南
2015/09/13 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
js断点调试经验分享
2017/12/08 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
python 拼接文件路径的方法
2018/10/23 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
Python hmac模块使用实例解析
2019/12/24 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
经贸韩语专业大学生职业规划
2014/02/14 职场文书
质量标语大全
2014/06/12 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS