戻る

カウントダウン
タイマーを使用したカウントダウン

カウントダウン


[HTML/CSS]

copy
const btnStart = document.getElementById("start");
btnStart.addEventListener("click", () => 
{
	start();
});
const btnReset = document.getElementById("reset");
btnReset.addEventListener("click", () => 
{
	reset();
});
const countdown = document.getElementById("countdown");

let stop = 0;//[0]処理可能 [1]停止
let intervalId = null;
const timeInit = 600;
let state = 0;//[0]未実行 [1]実行中
function start()
{
	if(stop == 1 || state == 1)return;
	state = 1;
	timer();
}
function reset()
{
	stop = 1;
	state = 0;
	countdown.innerText = "";
	countdownEn.innerText = "";
	clearInterval(intervalId);
	stop = 0;
}
function timer()
{
	let time = timeInit;//残りの時間
	intervalId = setInterval(() => 
	{
		// 止める条件
		if (stop == 1 || time <= 0) 
		{
			clearInterval(intervalId);
			if (stop == 1)
			{
				displayTime(timeInit);
			}
			else
			{
				//タイムアップと表示
				countdown.innerText = "Time is up";
			}
			stop = 0;
			state = 0;
			return;
		}
		time--;
		if(time < 0) time=0;
		displayTime(time);
	}, 100);
}
function displayTime(time)
{
	let quotient = 0;//商
	let rest = 0;//剰余
	quotient = Math.floor(time / 10);
	rest = time % 10;
	countdown.innerText = quotient + "." + rest;
}
intervalId = setInterval(() =>
...
}, 100);
1000で1秒なので、0.1秒ごとにタイマーを実行します。

if (stop == 1 || time <= 0)
リセットボタンを選択すると
stop変数に1が設定されます。
これがタイマーの停止条件になります。
time変数を
time--;
でデクリメントしていきます。
time <= 0になったら、タイマーの停止条件になります。

clearInterval(intervalId);
setIntervalの戻り値が発行ID(ユニークな値)です。
このIDをclearInterval関数の引数に設定して実行することで
タイマーを停止することができます。



戻る
back

Countdown
Countdown using a timer

Countdown


[HTML/CSS]

copy
const btnStart = document.getElementById("start");
btnStart.addEventListener("click", () => 
{
	start();
});
const btnReset = document.getElementById("reset");
btnReset.addEventListener("click", () => 
{
	reset();
});
const countdown = document.getElementById("countdown");

let stop = 0;//[0] Processing possible [1] Stop
let intervalId = null;
const timeInit = 600;
let state = 0;//0] Not running [1] Running
function start()
{
	if(stop == 1 || state == 1)return;
	state = 1;
	timer();
}
function reset()
{
	stop = 1;
	state = 0;
	countdown.innerText = "";
	countdownEn.innerText = "";
	clearInterval(intervalId);
	stop = 0;
}
function timer()
{
	let time = timeInit;//Remaining time
	intervalId = setInterval(() => 
	{
		// Stop conditions
		if (stop == 1 || time <= 0) 
		{
			clearInterval(intervalId);
			if (stop == 1)
			{
				displayTime(timeInit);
			}
			else
			{
				//display "Time up"
				countdown.innerText = "Time is up";
				state = 0;
			}
			stop = 0;
			return;
		}
		time--;
		if(time < 0) time=0;
		displayTime(time);
	}, 100);
}
function displayTime(time)
{
	let quotient = 0;//quotient
	let rest = 0;//surplus
	quotient = Math.floor(time / 10);
	rest = time % 10;
	countdown.innerText = quotient + "." + rest;
}
intervalId = setInterval(() =>
...
}, 100);
Since 1000 is 1 second, the timer will run every 0.1 seconds.

if (stop == 1 || time <= 0)
When you select the reset button,
the stop variable is set to 1.
This is the timer's stop condition.
Decrement the time variable
time--;
.
When time <= 0, the timer's stop condition is met.

clearInterval(intervalId);
The return value of setInterval is the issued ID (a unique value).
You can stop the timer by executing the clearInterval function with this ID as an argument.



back



著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。