자바스크립트로 카운트다운 타이머 만들기
URL
h tps:// 기주 b. 이오 / 코 t tw wn_chime r_js /
소스 코드
htps : // 기주 b. 코 m / 코 r에서 아 아시 xth / 코 t 드 wn_ Chime r_js
디렉토리 구성
app
├── index.html
├── script.js
├── style.css
└── background.jpeg
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Countdown Timer</title>
<link rel="stylesheet" href="style.css">
<script src="script.js" defer></script>
</head>
<body>
<h1>Time left in 2021</h1>
<div class="countdown-container">
<div class="countdown-elm">
<p class="time-text" id="days">0</p>
<span>days</span>
</div>
<div class="countdown-elm">
<p class="time-text" id="hours">0</p>
<span>hours</span>
</div>
<div class="countdown-elm">
<p class="time-text" id="mins">0</p>
<span>mins</span>
</div>
<div class="countdown-elm">
<p class="time-text" id="seconds">0</p>
<span>seconds</span>
</div>
</div>
</body>
</html>
script.js
const daysElm = document.getElementById('days');
const hoursElm = document.getElementById('hours');
const minsElm = document.getElementById('mins');
const secondsElm = document.getElementById('seconds');
// ここに好きな日時を記述する
// 西暦 月 日
const target = '2022 1 1';
function countDown() {
const targetDate = new Date(target);
const currentDate = new Date();
const totalSeconds = (targetDate - currentDate) / 1000;
const days = Math.floor(totalSeconds / 3600 / 24);
const hours = Math.floor(totalSeconds / 3600) % 24;
const mins = Math.floor(totalSeconds / 60) % 60;
const seconds = Math.floor(totalSeconds % 60);
daysElm.innerHTML = days;
hoursElm.innerHTML = formatTime(hours);
minsElm.innerHTML = formatTime(mins);
secondsElm.innerHTML = formatTime(seconds);
}
function formatTime(time) {
return time < 10 ? `0${time}` : time;
}
setInterval(countDown, 1000);
countDown()
가 타이머 처리입니다. setInterval()
에 의해 초당 호출되어 시간이 업데이트됩니다.formatTime()
로 표시되는 시간을 성형하고 있습니다. 시간, 분, 초가 10 이하인 경우는 항상 0을 표시시켜 레이아웃이 무너지는 것을 막고 있습니다.style.css
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro&display=swap');
* {
box-sizing: border-box;
}
body {
background-image: url(./background.jpeg);
background-size: cover;
background-position: center center;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
font-family: 'Source Sans Pro', sans-serif;
margin: 0;
}
h1 {
font-weight: normal;
font-size: 4rem;
margin-top: 5rem;
}
.countdown-container {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}
.time-text {
font-weight: bold;
font-size: 6rem;
line-height: 1;
margin: 1rem 2rem;
}
.countdown-elm {
text-align: center;
}
.countdown-elm span {
font-size: 1.2rem;
}
끝에
시간 계산 방법이 매우 공부되었습니다. 이런 단위 환산이 약하기 때문에 .... 다음은 일시를 입력할 수 있는 폼을 추가하거나, 복수의 타이머를 표시할 수 있도록 해 보고 싶네요!
읽어 주셔서 감사합니다! 피드백해 주시면 기쁩니다!
URL
h tps:// 기주 b. 이오 / 코 t tw wn_chime r_js /
소스 코드
htps : // 기주 b. 코 m / 코 r에서 아 아시 xth / 코 t 드 wn_ Chime r_js
참고
링크
Github
htps : // 기주 b. 코 m / 코 r에서 아시 xth
Products
htps : // 라이언 d로 p. 이오 / 코 r ぃ 아 / my p 로즈 cts - 18715918
Qiita
htps : // 코 m / 코 r
트위터
htps : // 라고 해서 r. 코 m / 코 r로 ぃあ_し xth
Reference
이 문제에 관하여(자바스크립트로 카운트다운 타이머 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cordelia/items/6171f761840ec3b71c43텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)