详解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 相关文章推荐
XHTML下,JS浮动代码失效的问题
Nov 12 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 Javascript
如何利用AngularJS打造一款简单Web应用
Dec 05 Javascript
jQuery与js实现颜色渐变的方法
Dec 30 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
Mar 01 Javascript
JavaScript中为事件指定处理程序的五种方式分析
Jul 27 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
node将geojson转shp返回给前端的实现方法
May 29 Javascript
js String.prototype.trim字符去前后空格的扩展
Aug 23 Javascript
浅谈实现在线预览PDF的几种解决办法
Aug 10 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
桌面中心(三)修改数据库
2006/10/09 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
Python实现针对中文排序的方法
2017/05/09 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python实现二维数组的对角线遍历
2019/03/02 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
为什么说python适合写爬虫
2020/06/11 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
工程专业求职自荐书范文
2014/02/18 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
党员评议个人总结
2014/10/20 职场文书
军事理论课感想
2015/08/11 职场文书
八年级作文之友情
2019/11/25 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
php访问对象中的成员的实例方法
2021/11/17 PHP