JavaScript 카운트다운 타이머가 포함된 출시 예정 페이지 만들기
15126 단어 tutorialwebdevjavascript
다음 마크업을 사용하여 새 HTML 파일을 만들어 시작하겠습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello World</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div id="countdown">
<h1>Coming Soon!</h1>
<p>Consectetur quo enim sequi. Repellendus sint deserunt et. Qui delectus repellat a illo adipisci sed. Aut quod alias atque sunt dolorem aliquam reprehenderit et.</p>
<ul>
<li><span id="days"></span>Days</li>
<li><span id="hours"></span>Hours</li>
<li><span id="minutes"></span>Minutes</li>
<li><span id="seconds"></span>Seconds</li>
</ul>
</div>
<script src="script.js"></script>
</body>
</html>
다음으로
script.js
파일을 만들고 각 시간 단위에 대한 변수를 정의하여 시작합니다.(() => {
const sec = 1000,
min = sec * 60,
hour = min * 60,
day = hour * 24;
})();
카운트다운 타이머를 구축할 때 다음 형식을 사용하여 종료 날짜/시간을 지정해야 합니다.
const end = new Date("Jul 01, 2021 12:00:00").getTime();
남은 시간을 계산하기 위해
setInterval
를 사용하여 1000밀리초마다 현재 시간을 가져옵니다. 그런 다음 종료 날짜에서 시간을 빼서 남은 시간을 계산하고 HTML 텍스트를 업데이트할 수 있습니다.const int = setInterval(() => {
const current = new Date().getTime();
const remaining = end - current;
document.getElementById("days").innerText = Math.floor(remaining / day);
document.getElementById("hours").innerText = Math.floor( (remaining % day) / hour );
document.getElementById("minutes").innerText = Math.floor( (remaining % hour) / min );
document.getElementById("seconds").innerText = Math.floor( (remaining % min) / sec );
}, 1000);
현재 카운트다운이 만료되면 종료 날짜 이후 경과된 시간을 표시하는 타이머가 계속 실행됩니다. 대신 모든 숫자를 0으로 설정하고 종료 날짜에 도달했음을 나타내도록 텍스트를 업데이트합니다. 이렇게 하려면
setInterval
메서드 끝에 다음을 추가합니다.if (remaining < 0) {
document.querySelector("h1").innerText = "We Have Arrived!";
document.querySelector("p").innerHTML = "The big day is finally here - view our <a href=https://www.website.com>website<a/> for more information.";
const digit = document.querySelectorAll("span");
digit.forEach((digit) => {
digit.innerText = "0";
});
clearInterval(int);
}
이제 CSS에 대한 카운트다운이 기능적으로 완료됩니다.
따라서 카운트다운은 수평 및 수직으로 중앙 정렬됩니다. 몸체는 정렬 중앙에
display: flex
로 설정되었습니다. 배경 이미지는 Pexels에서 제공되었으며 CSScover
속성을 사용하여 전체 화면을 표시하도록 설정되었습니다.html {
height: 100%;
overflow: hidden;
}
body {
background: url("https://images.pexels.com/photos/1252869/pexels-photo-1252869.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940") no-repeat center center fixed;
color: #fff;
font-family: sans-serif;
text-align: center;
min-height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
타이포그래피의 경우
text-shadow
를 추가하여 배경 이미지에 오버레이될 때 읽기 쉽도록 하고 글꼴 크기를 늘리고 기본 파란색 링크 색상을 재정의합니다.h1 {
font-size: 4rem;
text-shadow: 1px 1px 5px #000;
margin: 0;
}
p {
font-size: 1.2rem;
text-shadow: 1px 1px 2px #000;
}
a {
color: #fff;
}
마지막으로 카운트다운 타이머의 숫자와 텍스트입니다. 4개의 요소가 있으므로
flex: 25%
를 사용하여 가로 축에 균등하게 분배합니다. 숫자가 눈에 띄도록 배경색을 추가합니다(배경 이미지에서 가져옴).#countdown {
max-width: 600px;
}
#countdown ul {
margin: 5% 0 0 0;
padding: 0;
display: flex;
gap: 5%;
}
#countdown ul li {
flex: 25%;
padding: 5%;
margin: 0;
list-style: none;
background: #001f2f;
border-radius: 5px;
}
#countdown ul li span {
display: block;
font-size: 3rem;
}
Original Article
Reference
이 문제에 관하여(JavaScript 카운트다운 타이머가 포함된 출시 예정 페이지 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/michaelburrows/create-a-coming-soon-page-featuring-a-javascript-countdown-timer-1jae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)