JavaScript로 스톱워치 만들기
5054 단어 htmlwebdevcssjavascript
HTML 코드:
<html>
<head>
<title>JavaScript</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="stopwatch">
00:00:00
</div>
<ul id="buttons">
<li><button onclick="startTimer()">Start</button></li>
<li><button onclick="stopTimer()">Stop</button></li>
<li><button onclick="resetTimer()">Reset</button></li>
</ul>
<script src="main.js"></script>
</body>
</html>
CSS 코드:
body {
background: #202020;
color: white;
}
button {
width: 100px;
height: 30px;
border: 3px soldi white;
border-radius: 50px;
background: #202020;
color: white;
cursor: pointer;
outline: none;
}
#stopwatch {
font-size: 100px;
position: absolute;
top: 45%;
left: 50%;
transform: translate(-50%, -55%);
}
#buttons {
position: absolute;
top: 55%;
left: 48.4%;
transform: translate(-51.6%, -45%);
}
#buttons li {
display: inline;
padding-left: 10px;
}
자바스크립트 코드:
const timer = document.getElementById('stopwatch');
var hr = 0;
var min = 0;
var sec = 0;
var stoptime = true;
function startTimer() {
if (stoptime == true) {
stoptime = false;
timerCycle();
}
}
function stopTimer() {
if (stoptime == false) {
stoptime = true;
}
}
function timerCycle() {
if (stoptime == false) {
sec = parseInt(sec);
min = parseInt(min);
hr = parseInt(hr);
sec = sec + 1;
if (sec == 60) {
min = min + 1;
sec = 0;
}
if (min == 60) {
hr = hr + 1;
min = 0;
sec = 0;
}
if (sec < 10 || sec == 0) {
sec = '0' + sec;
}
if (min < 10 || min == 0) {
min = '0' + min;
}
if (hr < 10 || hr == 0) {
hr = '0' + hr;
}
timer.innerHTML = hr + ':' + min + ':' + sec;
setTimeout("timerCycle()", 1000);
}
}
function resetTimer() {
timer.innerHTML = '00:00:00';
}
편집하다:
주석에서 'uthx'가 지적한 것처럼 시간을 재설정할 때 sec, min 및 hr의 값을 재설정하는 기능을 추가해야 합니다. 다음 함수('uthx'로 코딩된 함수)를 사용하여 이를 수행할 수 있습니다.
function resetTimer() {
timer.innerHTML = "00:00:00";
stoptime = true;
hr = 0;
sec = 0;
min = 0;
}
최종 결과:
(당연히 작동합니다. 직접 테스트했습니다 😉)
설명
부인 성명! 코드에서 '스톱워치'가 아닌 '타이머'라고 하는 것을 알 수 있습니다. '타이머'가 '스톱워치'보다 짧기 때문에 항상 입력할 필요가 없기 때문입니다 😂.
const timer = document.getElementById('stopwatch');
id를 사용하여 타이머 'div'를 변수로 가져오므로 원하는 대로 수정할 수 있습니다. var hr = 0; var min = 0; var sec = 0;
시, 분, 초 변수를 만들고 초기값을 0으로 선언합니다. var stoptime = true;
스톱워치가 실행 중인지 여부를 확인할 수 있도록 변수를 만듭니다. if (stoptime == true) { stoptime = false; timerCycle(); }
스톱워치가 실행되고 있지 않으면 스톱워치를 켜고 timerCycle()
기능으로 이동합니다. ('시작' 버튼을 클릭한 경우에만 실행됨) if (stoptime == false) { stoptime = true; }
스톱워치가 실행 중이면 끕니다. ('중지' 버튼을 클릭한 경우에만 실행됨) if (stoptime == false) {
스톱워치가 켜져 있는지 확인합니다. sec = parseInt(sec); min = parseInt(min); hr = parseInt(hr);
문자열을 정수로 구문 분석하는 데 사용됩니다. (문자열로 1045가 있고 정수로 사용하려는 경우 구문 분석합니다.) sec = sec + 1;
초에 1을 더합니다. if (sec == 60) {
초가 60이면 분 = 1이고 초는 다시 0이 됩니다. if (min == 60) {
분이 60이면 시 = 1이고 초 + 분은 다시 0이 됩니다. if (sec < 10 || sec == 0) {
sec = '0' + sec;
}
if (min < 10 || min == 0) {
min = '0' + min;
}
if (hr < 10 || hr == 0) {
hr = '0' + hr;
}
초, 분 및/또는 시가 10보다 작으면 앞에 0을 추가합니다. 이것이 우리가 처음부터 모든 것을 파싱해야 하는 이유입니다. 이 작업을 수행하면 문자열이 됩니다.
timer.innerHTML = hr + ':' + min + ':' + sec;
이 값을 '타이머' div에 추가합니다. setTimeout("timerCycle()", 1000);
이렇게 하면 'timerCycle()'을 반복하기 전에 1000ms(1s)의 시간 제한이 있는지 확인합니다. timer.innerHTML = '00:00:00';
타이머를 00:00:00으로 재설정하는 데 사용됨그리고 끝났습니다!
개발자로서 돈을 버는 방법을 알아보세요.
Reference
이 문제에 관하여(JavaScript로 스톱워치 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/gspteck/create-a-stopwatch-in-javascript-2mak
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(JavaScript로 스톱워치 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gspteck/create-a-stopwatch-in-javascript-2mak텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)