JavaScript로 타이머 응용 프로그램 만들기
19701 단어 JavaScripttech
1. 타이머 프로그램의 외관
Start 및 Stop 버튼 및 타이머만 간단하게 표시됩니다.
또한 버튼은 Bootstrap을 사용하여 수행됩니다.
위의 그림은 실제 제작된 타이머 프로그램입니다.
2. 설치할 기능
타이머를 만들 때 어떤 기능을 설치할지 결정한다.
4. Stop 버튼을 누르면 타이머가 멈춘다.
3. 타이머 응용 디자인
상술한 기능을 실시할 때 어떻게 해야만 실현할 수 있는지를 구체적으로 고려하였다.
4. 해를 넘기는 기능의 디자인
처음에는 반복 동작이었는데 1000ms에 1을 더하면 타이머가 된다고 생각해서 실제로 그걸 했어요.그러나 조사 과정에서 타이머가 Date 대상을 사용하는 것을 발견했기 때문에 먼저 Date 대상을 조사했다.
Date 객체에 대한 세부내용(Mozill/MDN 웹 Docs 기준)
Date.now () Start 단추를 눌렀을 때의 현재 시간을 가져오고 setInterval () 의 반복 동작을 사용한 현재 시간에서 Start 단추를 눌렀을 때를 빼면 시간이 걸릴 것 같아서 이 방법으로 하기로 결정했습니다.
5. 실제 코드와 간단한 설명
걸려 넘어진 곳은 평론으로 간단한 해설을 썼다.
html
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<link rel="stylesheet" href="main.css">
</head>
<body>
<header>
</header>
<article>
<div class="container-fluid">
<p class="def_timer">00:00:00</p>
<button type="button" class="btn btn-primary">Start</button>
<!--classは複数指定できる。上の場合btnとbtn-primary-->
<button type="button" class="btn btn-danger">Stop</button>
</div>
<script src="main2.js"></script>
</article>
</body>
</html>
css.container-fluid{
text-align: center;
}
javascriptlet start_button = document.querySelector('.btn-primary');
let stop_button = document.querySelector('.btn-danger');
let def_timer = document.querySelector('.def_timer');
let start_time;
let el_time;
let timer_id;
stop_button.disabled = true;
//Stopボタンを無効化する
start_button.addEventListener('click',()=>{
//timer_buttonをクリックしたときは以下の挙動をする
start_time = Date.now();
//ボタンを押したときの現在時刻を取得
start_button.disabled = true;
stop_button.disabled = false;
timer_id = setInterval(go_timer,10);
})
stop_button.addEventListener('click',()=>{
start_button.disabled = false;
stop_button.disabled = true;
clearInterval(timer_id);
})
function add_zero(value){
if(value < 10){
value = "0" + value;
}
return value;
}
//1桁のときに10の位に文字列の"0"を足す関数
function arrange_time(){
let sec = Math.floor(el_time % 60000 / 1000);
//商の余りを使うことで60を超えたら自動的に0になる
let min = Math.floor(el_time % 3600000 / 60000);
let hour = Math.floor(el_time / 3600000);
sec = add_zero(sec);
//上で作ったadd_zeroのvalueにsecを入れたものをsecに入れた
min = add_zero(min);
hour = add_zero(hour);
def_timer.innerHTML = `${hour}:${min}:${sec}`;
//html内にあるdef_timerを書き換える
}
let go_timer = ()=>{
let time_now = Date.now();
el_time = time_now - start_time;
arrange_time();
}
6. 요약
이렇게 간단하지만 타이머 응용은 이미 완성되었다.나는 그 프로그램에 장과 일시 정지 기능을 추가하고 싶다.
JavaScript를 처음 사용해 앱을 제작한 것이어서 헤아릴 수 없이 많은 지경에 이르렀지만, 앱 제작의 조립 방법과 MDN이 얼마나 알아볼 수 있는지 등은 좋은 경험이었다.
이런 기사는 처음 만들어봐서 안 되는 부분이 있을 거라고 생각했는데 기사를 써서 복습했다.
뭔가 더 만들었을 때 이런 출력 기사를 썼으면 좋겠다.
Reference
이 문제에 관하여(JavaScript로 타이머 응용 프로그램 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/uchidametal/articles/4d1c7bf34777bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)