카운트다운 타이머는 주요 이벤트를 카운트다운하려는 사람들이 인터넷 전체에서 사용합니다.
카운트다운 타이머를 사용하여 새 웹사이트가 시작될 때까지 카운트다운할 수 있습니다. 카운트다운 타이머는 제품 발표를 할 때 표시할 수 있습니다. 탐색할 가능성이 너무 많습니다.
이 가이드에서는 HTML, CSS 및 JavaScript의 세 가지 기술을 사용하여 JavaScript에서 카운트다운 타이머를 만드는 방법을 보여줍니다. 시작하겠습니다!
웹페이지 설정
첫 번째 단계는 기본 웹 페이지를 설정하는 것입니다. 이 가이드에서는 외부 라이브러리를 사용하는 것에 대해 걱정하지 않을 것입니다. 우리는 그것을 단순하게 유지하고 평범한 오래된 HTML, CSS 및 JavaScript를 사용할 것입니다.
HTML 파일을 생성하여 시작하겠습니다.
<!DOCTYPE html> <html> <script> // We'll store our JavaScript code here </script> <style> // We'll write our CSS styles here </style> <body> <h1>It's almost time…</h1> <div id="timer"></div> </body> </html>
우리 코드는 지금 특별한 것을 반환하지 않습니다. 아래를 참조하십시오.
아직 코드에 스타일을 추가하지 않았거나 JavaScript 타이머를 만들지 않았기 때문에 이렇게 표시됩니다. 타이머를 작동시킬 자바스크립트를 만드는 방법으로 넘어갑시다.
타이머 만들기
JavaScript에는 날짜와 시간을 다루는 데 사용할 수 있는 Date라는 편리한 객체가 있습니다. 우리는 이 객체를 두 가지 목적으로 사용할 것입니다. 카운트다운하려는 시간의 타임스탬프를 가져오는 것과 현재 날짜를 가져오는 것입니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
이 튜토리얼에서는 모든 스크립트를 태그에 작성할 것입니다. 우리는 외부 스크립트를 사용하지 않을 것입니다.
현재 날짜에서 카운트다운 날짜를 빼면 다음 두 날짜의 차이가 나옵니다.
var timeLeft = +new Date("2021-05-04") - +new Date();
이 코드는 다음 스타워즈 데이인 2021년 5월 4일까지 남은 일수를 계산합니다.
이제 이 이틀 간의 차이를 알지만 몇 가지 문제가 있습니다. 첫째, 아직 카운트다운하는 타이머가 없습니다. 둘째, 날짜는 사람이 쉽게 읽을 수 있는 형식으로 저장되지 않습니다. 밀리초 단위로 저장되므로 우리에게는 그다지 편리하지 않습니다. 시간을 일, 시간, 분으로 변환해야 합니다.
더 읽기 쉬운 형식으로 남은 시간을 계산하기 위해 다음 코드를 사용할 것입니다.
var daysLeft = Math.floor(timeLeft / (1000 * 60 * 60 * 24)); var hoursLeft = Math.floor((timeLeft / (1000 * 60 * 60)) % 24); var minutesLeft = Math.floor((timeLeft / 1000) / 60 % 60);
다음 코드를 사용하여 값을 문자열로 형식화할 수 있습니다.
const timeLeftText = `${daysLeft} days ${hoursLeft} hours ${minutesLeft} minutes.`;
이 코드에서는 문자열 보간을 사용하여 이전에 계산한 값을 대체합니다. 이렇게 하면 314일 13시간 52분과 같은 타임스탬프가 표시됩니다.
타임스탬프를 생성했으므로 이제 웹페이지에 배치할 수 있습니다.
document.getElementById("timer").innerHTML = timeLeftText;
모든 코드를 함수로 이동할 수 있습니다.
function countdown() { var daysLeft = Math.floor(timeLeft / (1000 * 60 * 60 * 24)); var hoursLeft = Math.floor((timeLeft / (1000 * 60 * 60)) % 24); var minutesLeft = Math.floor((timeLeft / 1000) / 60 % 60); const timeLeftText = `${daysLeft} days ${hoursLeft} hours ${minutesLeft} minutes.`; document.getElementById("timer").innerHTML = timeLeftText; } countdown();
페이지를 로드하면 다음이 반환됩니다.
이제 타이머가 있습니다. 오늘은 끝났어, 그렇지? 아니요; 그렇게 빠르지 않습니다. 잠시 기다리면 타이머가 실제로 카운트다운되지 않는 것을 볼 수 있습니다. 매분마다 업데이트하도록 브라우저에 알려야 하기 때문입니다. 다음 코드를 사용하여 수행합니다.
setInterval(countdown, 60000);
이 코드는 countdown() 함수가 선언된 후에 추가되어야 합니다. 이렇게 하면 60,000밀리초마다 페이지가 새로 고쳐집니다. 이것은 매 60초에 해당합니다.
이제 코드를 업데이트할 때 매분마다 변경되는 것을 볼 수 있습니다!
일부 스타일 추가
카운트다운 타이머는 기능적일 수 있지만 미학적으로 만족스럽지는 않습니다. 페이지를 더 매력적으로 만들기 위해 몇 가지 스타일을 만들어 보겠습니다.
<style> body { padding-top: 20%; height: 100vh; background: linear-gradient(to bottom right, #CAA89C, #434EFC); } h1, p { text-align: center; color: white; } </style>
이제 웹페이지는 다음과 같습니다.
보시다시피, 이제 페이지에 그라데이션 배경이 있고 텍스트가 가운데에 정렬되고 텍스트가 흰색으로 표시됩니다. 멋지네요!
결론
카운트다운 타이머는 많은 사이트의 중요한 기능입니다. 개인 및 전문 웹 페이지 모두에서 카운트다운을 볼 수 있습니다. 사람의 블로그에는 결혼식 카운트다운이 포함될 수 있습니다. 회사 웹 사이트에는 제품 출시 카운트다운이 포함될 수 있습니다.
이제 전문가처럼 JavaScript 카운트다운 타이머를 만들 준비가 되었습니다!