详解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 arguments 对象使用介绍
Oct 18 Javascript
jQuery插件Validate实现自定义校验结果样式
Jan 18 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
jQuery事件用法详解
Oct 06 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
Nov 02 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 Javascript
JS控制下拉列表左右选择实例代码
May 08 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 Javascript
在vue中嵌入外部网站的实现
Nov 13 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
探讨php中header的用法详解
2013/06/07 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
原生JS实现天气预报
2020/06/16 Javascript
学习python处理python编码问题
2011/03/13 Python
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python调用百度语音REST API
2018/08/30 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
2014年党委工作总结
2014/11/22 职场文书
2015年药房工作总结
2015/04/25 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers