详解JavaScript的计时器和按钮效果设置


Posted in Javascript onFebruary 18, 2022

计时器效果: 

详解JavaScript的计时器和按钮效果设置

<div>
    <font id='timeCount' style='display:inline-block; font-size:72px;width:100px;text-align:right;'>0</font> &nbsp;&nbsp;&nbsp;
    //需要固定时间值的宽度,避免时间值从9变到10(以及从99变到100)时后面三张图片的位置发生变化
    //但是font是行内元素,无法设置宽度,所以把font变为行内块元素display:inline-block
    <img src='start.png'   class='imgBtn'  onclick="start(this)" >
    <img src='suspend.png' class='imgBtn'  onclick="suspend(this)">
    <img src='stop.png'    class='imgBtn'  onclick="stop(this)">
</div>
.imgBtn{ 
    cursor:pointer; 
    width:25px;
    height:25px;
}
var timerState=2;//0-start(正在计时)  1-suspend(暂停计时)  2-stop(停止计时)
var timerID;//计时器
//点击开始按钮,调用该函数
function start(obj){
	if(timerState==0) //如果当前状态为正在计时,本次点击不起作用
		return;
	else
	{
		timerState=0;//标识 正在计时
		changeImgBtnState(); //改变按钮的显示效果
		timerID=setInterval("f7()",500); //启动计时器
	}
}
function suspend(obj){
	if(timerState==1 || timerState==2)
		return; //如果当前状态为 暂停计时 或 停止计时,本次点击不起作用
	else
	{
		timerState=1; //标识 暂停计时
		changeImgBtnState(); //改变按钮的显示效果
		clearInterval(timerID); //清除计时器
	}
}
function stop(obj){
	if(timerState==2) //如果当前状态为 停止计时,本次点击不起作用
		return;
	if(timerState==0)  //如果当前状态为正在计时,清除计时器
		clearInterval(timerID); 
	document.getElementById('timeCount').innerHTML=0; //计时数值清零
	timerState=2; //标识 停止计时
	changeImgBtnState(); //改变按钮的显示效果
}
function f7()
{
	var i=document.getElementById('timeCount').innerHTML;
	document.getElementById('timeCount').innerHTML=parseInt(i)+1;
}
function changeImgBtnState(){
	var imgBtn=document.getElementsByClassName('imgBtn');
	for(var i=0;i<3;i++){
		imgBtnState(imgBtn[i],timerState!=i);
	}
}
function imgBtnState(obj,flag){
	if(flag==false) //按钮不可用
		obj.style.cssText="border:1px solid black;width:15px;height:15px;padding:5px;";
	else
		obj.style.cssText="border:0px solid black;width:25px;height:25px;padding:0px;";
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Javascript 相关文章推荐
javascript得到XML某节点的子节点个数的脚本
Oct 11 Javascript
jquery.ui.draggable中文文档
Nov 24 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
jQuery选择器之基本选择器与层次选择器
Mar 03 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
关于js中的鼠标事件总结
Jul 11 Javascript
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
读懂CommonJS的模块加载
Apr 19 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
一篇文章告诉你如何实现Vue前端分页和后端分页
javascript的var与let,const之间的区别详解
Feb 18 #Javascript
交互式可视化js库gojs使用介绍及技巧
gojs实现蚂蚁线动画效果
uni-app 微信小程序授权登录的实现步骤
Feb 18 #Javascript
详解TypeScript的基础类型
Feb 18 #Javascript
详解jQuery的核心函数和事件处理
Feb 18 #jQuery
You might like
PHP EOT定界符的使用详解
2008/09/30 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
php统计文章排行示例
2014/03/04 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
js实现弹窗效果
2020/08/09 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python利用IPython提高开发效率
2016/08/10 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
实体的生命周期
2013/08/31 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
陈欧广告词
2014/03/14 职场文书
采购意向书范本
2014/03/31 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
地道战观后感
2015/06/04 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
python开发的自动化运维工具ansible详解
2021/08/07 Python
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis