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 相关文章推荐
document.createElement()用法
Mar 13 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
js获取checkbox复选框选中的选项实例
Aug 24 Javascript
js和jquery中循环的退出和继续下一个循环
Sep 03 Javascript
JQuery实现图片轮播效果
Sep 15 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 Javascript
js简单倒计时实现代码
Apr 30 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
微信小程序-API接口安全详解
Jul 16 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
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
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
js密码强度检测
2016/01/07 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
Python常用库推荐
2016/12/04 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python编程argparse入门浅析
2018/02/07 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python 伯努利分布详解
2020/02/25 Python
Python通过文本和图片生成词云图
2020/05/21 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
瑜伽国际:Yoga International
2018/04/18 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
文艺晚会策划方案
2014/06/11 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
超市收银员岗位职责
2015/04/07 职场文书
生活委员竞选稿
2015/11/21 职场文书