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应用于login页面的问题及解决
Oct 17 Javascript
JavaScript 继承机制的实现(待续)
May 18 Javascript
js原型链原理看图说明
Jul 07 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
javascript操作字符串的原生方法
Dec 22 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
javascript流程控制语句集合
Sep 18 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
微信小程序实现图片上传
May 23 Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 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
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
php中JSON的使用方法
2015/04/30 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
input按钮的事件处理大全
2010/12/10 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
Python开发常用的一些开源Package分享
2015/02/14 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
门卫岗位安全职责
2013/12/13 职场文书
医药营销个人求职信
2014/04/12 职场文书
大学班级文化建设方案
2014/05/06 职场文书
小学班主任培训方案
2014/06/04 职场文书
党员示范岗材料
2014/12/19 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js