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 相关文章推荐
漂亮的widgets,支持换肤和后期开发新皮肤
Apr 23 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
Apr 24 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 Javascript
详解javascript表单的Ajax提交插件的使用
Dec 29 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 Javascript
JavaScript图片处理与合成总结
Mar 04 Javascript
使用typescript构建Vue应用的实现
Aug 26 Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
vue 自定义组件的写法与用法详解
Mar 04 Javascript
浅谈JavaScript作用域
Dec 06 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 foreach 参数强制类型转换的问题
2010/12/10 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
python 队列详解及实例代码
2016/10/18 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python类中self参数用法详解
2020/02/13 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
中国文明网签名寄语
2014/01/18 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
勤俭节约倡议书
2014/04/14 职场文书
广播节目策划方案
2014/05/23 职场文书
物流管理专业求职信
2014/05/29 职场文书
测控技术自荐信
2014/06/05 职场文书
任命书范本大全
2014/06/06 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
导游词开场白
2015/01/31 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技