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 选项卡效果 新手代码
Jul 08 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
详解axios在node.js中的post使用
Apr 27 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
Aug 07 Javascript
socket io与vue-cli的结合使用的示例代码
Nov 01 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
Mar 07 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中cookies使用指南
2007/03/16 PHP
php构造函数实例讲解
2013/11/13 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
python解决字典中的值是列表问题的方法
2013/03/04 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
python tqdm库的使用
2020/11/30 Python
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
机关单位人员学雷锋心得体会
2014/03/10 职场文书
建设工程授权委托书
2014/09/22 职场文书
文员岗位职责
2015/02/04 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书