Detailed explanation of JavaScript timer and button effect settings

Detailed explanation of JavaScript timer and button effect settings

Timer Effects:

 <div>
    <font id='timeCount' style='display:inline-block; font-size:72px;width:100px;text-align:right;'>0</font> &nbsp;&nbsp;&nbsp;
    //The width of the time value needs to be fixed to avoid the position of the next three pictures changing when the time value changes from 9 to 10 (and from 99 to 100). //However, font is an inline element and its width cannot be set, so font is changed to an inline block element 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 (timing in progress) 1-suspend (pause timing) 2-stop (stop timing)
var timerID; //Timer //Click the start button to call the function function start(obj){
	if(timerState==0) //If the current state is timing, this click will not work return;
	else
	{
		timerState=0;//The indicator is timing changeImgBtnState(); //Change the display effect of the button timerID=setInterval("f7()",500); //Start the timer }
}
function suspend(obj){
	if(timerState==1 || timerState==2)
		return; //If the current state is to pause or stop timing, this click will not work else
	{
		timerState=1; //Mark pause timing changeImgBtnState(); //Change the display effect of the button clearInterval(timerID); //Clear timer }
}
function stop(obj){
	if(timerState==2) //If the current state is to stop timing, this click will not work return;
	if(timerState==0) //If the current state is timing, clear the timer clearInterval(timerID); 
	document.getElementById('timeCount').innerHTML=0; //Reset the timer value timerState=2; //Stop the timer changeImgBtnState(); //Change the display effect of the button}
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) //The button is unavailable 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;";
}

Summarize

This article ends here. I hope it can be helpful to you. I also hope you can pay more attention to more content on 123WORDPRESS.COM!

You may also be interested in:
  • Vue.js implements simple timer function
  • Implementing a simple timer in JavaScript
  • JS implements a stopwatch timer
  • JS uses setInterval timer to implement the 10-second challenge
  • JavaScript implements a good-looking stopwatch timer
  • JavaScript setInterval() vs setTimeout() Timers
  • js implements built-in timer

<<:  How to add vector icons to web font files in web page production

>>:  MySQL database master-slave replication and read-write separation

Recommend

Detailed explanation of CSS weight value (cascading) examples

•There are many selectors in CSS. What will happe...

Ten popular rules for interface design

<br />This is an article I collected a long ...

js tag syntax usage details

Table of contents 1. Introduction to label statem...

Using better-scroll component in Vue to realize horizontal scrolling function

About Recently, in the process of learning Vue, I...

MySQL data types full analysis

Data Type: The basic rules that define what data ...

Recommend a cool flashing alarm button

The effect is as follows: The code is as follows ...

Introduction to the use of html base tag target=_parent

The <base> tag specifies the default address...

Detailed explanation of destructuring assignment syntax in Javascript

Preface The "destructuring assignment syntax...

Use of Linux crontab command

1. Command Introduction The contab (cron table) c...

Vite2.0 Pitfalls

Table of contents Vite project build optimization...

Detailed explanation of node.js installation and HbuilderX configuration

npm installation tutorial: 1. Download the Node.j...

How to modify the scroll bar style in Vue

Table of contents First of all, you need to know ...

How to implement Vue binding class and binding inline style

Table of contents Binding Class Binding inline st...