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 相关文章推荐
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
Jul 09 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
使用webpack打包koa2 框架app
Feb 02 Javascript
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 Javascript
vue+express 构建后台管理系统的示例代码
Jul 19 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
JavaScript实现留言板案例
Mar 17 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
Jun 05 Javascript
js实现简单商品筛选功能
Feb 02 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的全局错误处理详解
2016/04/25 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
webpack3之loader全解析
2017/10/26 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
Python中replace方法实例分析
2014/08/20 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
numpy中的高维数组转置实例
2018/04/17 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python dumps和loads区别详解
2020/02/04 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
Python调用C/C++的方法解析
2020/08/05 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
技术副厂长岗位职责
2013/12/26 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
手机被没收检讨书
2014/02/22 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
优秀校长事迹材料
2014/12/24 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
导游词之安徽九华山
2019/09/18 职场文书
MySQL创建管理KEY分区
2022/04/13 MySQL