详解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 变量作用域分析
Jul 04 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 Javascript
在线所见即所得HTML编辑器的实现原理浅析
Apr 25 Javascript
jquery动感漂浮导航菜单代码分享
Apr 15 Javascript
JavaScript提升性能的常用技巧总结【经典】
Jun 20 Javascript
angular中的cookie读写方法
Aug 02 Javascript
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
详解react-redux插件入门
Apr 19 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
Dec 14 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
vue项目中使用bpmn-自定义platter的示例代码
May 11 Javascript
一篇文章告诉你如何实现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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
python实现视频压缩功能
2020/12/18 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
linux面试题参考答案(10)
2013/11/04 面试题
2014年消防工作实施方案
2014/02/20 职场文书
加入学生会演讲稿
2014/04/24 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题
Docker安装MySql8并远程访问的实现
2022/07/07 Servers