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 相关文章推荐
JQERY limittext 插件0.2版(长内容限制显示)
Aug 27 Javascript
jquery 图片缩放拖动的简单实例
Jan 08 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
Nov 25 Javascript
JS使用cookie设置样式的方法
Jun 30 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
Sep 05 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 Javascript
javascript中如何判断类型汇总
May 14 Javascript
vue.js购物车添加商品组件的方法
Sep 17 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学习笔记(一) 简单了解PHP
2014/08/04 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
picChange 图片切换特效的函数代码
2010/05/06 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
javascript每日必学之继承
2016/02/23 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
网络事业创业计划书范文
2014/01/09 职场文书
商场总经理岗位职责
2014/02/03 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
教师业务培训方案
2014/05/01 职场文书
物业管理工作方案
2014/05/10 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
学校社团活动总结
2015/05/07 职场文书
python urllib库的使用详解
2021/04/13 Python