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 相关文章推荐
Javascript 陷阱 window全局对象
Nov 26 Javascript
javascript操作cookie_获取与修改代码
May 21 Javascript
初窥JQuery(二)事件机制(2)
Dec 06 Javascript
js获取 type=radio 值的方法
May 09 Javascript
node.js [superAgent] 请求使用示例
Mar 13 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
浅谈json取值(对象和数组)
Jun 24 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
深入浅析Node.js单线程模型
Jul 10 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
Sep 28 Javascript
Element-UI中关于table表格的那些骚操作(小结)
Aug 15 Javascript
JavaScript函数IIFE使用详解
Oct 21 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
python中defaultdict的用法详解
2017/06/07 Python
python 全局变量的import机制介绍
2017/09/07 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
一份Java笔试题
2012/02/21 面试题
客服文员岗位职责
2013/11/29 职场文书
《石榴》教学反思
2014/03/02 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
优秀班组申报材料
2014/12/25 职场文书
质量保证书格式
2015/02/27 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript