안녕하세요!

블랙프라이데이 기간에 자주 쓰이는 이벤트,프로모션 마감 타이머를 자바스크립트로 제작해보았습니다!

저는 시,분,초로 나타내주었습니다.

 

🔥실행 결과

1. html 파일

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
    <div id="count-down">
      <dl>
        <dt class="hour"></dt>
      </dl>
      <dl>
        <dt class="min"></dt>
      </dl>
      <dl>
        <dt class="sec"></dt>
      </dl>
    </div>
    </div>
    <script src="src/app.js"></script>
</body>
</html>

 

2. 스크립트 파일

<script>
  var hour = document.querySelector(".hour");
  var min = document.querySelector(".min");
  var sec = document.querySelector(".sec");
  var dday=document.querySelector("#count-down dt");

  var T=setInterval(diffDay, 1000);
  var masTime = new Date;
    masTime.setFullYear(2022,10,15); // 자바스크립트에서 월과 요일은 0부터 세므로 11월은 10이 됨.
    masTime.setHours(17,0,0,0); // 17시를 의미함
    
    var masTime = Math.round((masTime.getTime()-new Date().getTime())/1000);

  function diffDay() {

    masTime = masTime-1; //1초씩 감소
 
   
    var d_sec2=masTime%3600; // 남은 초를 1시간 3600초 단위로 계산후 나머지 초
    var d_hours=String((masTime-d_sec2)/3600).padStart(2,"0"); // 시간 계산

    var d_sec3=String(d_sec2 % 60).padStart(2,"0"); // 남은 초를 60초 단위로 계산후 나머지 초
    var d_mins=String((d_sec2 - d_sec3) / 60).padStart(2,"0"); // 분 계산


    hour.innerText = `${d_hours}` + ":";
    min.innerText = `${d_mins}`  + ":";  
    sec.innerText = `${d_sec3}`; 

    if(masTime<=0){
    clearInterval(T);
    hour.innerText = `00` + ":";
    min.innerText = `00`  + ":";  
    sec.innerText = `00`; 
    } //디데이가 되면 00:00:00으로 표시
}

</script>

저는 두 자리로 표현하기 위해 .padStart(2,"0");를 추가하였습니다.

 

3.CSS 파일

<style>
  #count-down {
    width: 1000px;
    height: 380px;
    line-height: 380px;
    background-color: #c8c8c8;
    color: #fff;
    font-size: 72px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
  }
</style>

 

*본 게시물은 학습을 위한 개인 기록용입니다.

 

https://swiperjs.com/get-started

 

Getting Started With Swiper

Swiper is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior.

swiperjs.com

 

1. CDN 연결

먼저 swiper 연결 시 css와 js를 연결 해주어야 합니다.

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"
  />

<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>

2. HTML / JS 연결

*HTML*

<!-- Slider main container -->
<div class="swiper">
  <!-- Additional required wrapper -->
  <div class="swiper-wrapper">
    <!-- Slides -->
    <div class="swiper-slide">Slide 1</div>
    <div class="swiper-slide">Slide 2</div>
    <div class="swiper-slide">Slide 3</div>
    ...
  </div>
  <!-- If we need pagination -->
  <div class="swiper-pagination"></div>

  <!-- If we need navigation buttons -->
  <div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>

  <!-- If we need scrollbar -->
  <div class="swiper-scrollbar"></div>
</div>
*JS*

const swiper = new Swiper('.swiper', {
  // Optional parameters
  direction: 'vertical', //방향
  loop: true, //무한 반복
  loopedSlides: 1, //loop시 duplicate 개수
  
  // If we need pagination
  pagination: {
    el: '.swiper-pagination',
    type: 'progressbar', //프로그래스바 설정

  },

  // Navigation arrows
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },

  // And if we need scrollbar
  scrollbar: {
    el: '.swiper-scrollbar',
  },
});

3. CSS 설정

.swiper {
  width: 600px;
  height: 300px;
}

/*슬라이드 내용*/
 .swiper-slide {
        text-align: center;
        font-size: 18px;
        background: #fff;

        /* Center slide text vertically */
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
        
      }

/*프로그래스바 하단에 위치*/
.swiper-pagination { top: 95% !important; }

 

+프로그레스바를 하단에 노출시키기 위해 top값을 강제로 설정하였습니다.

 

4. 결과물 확인

See the Pen Untitled by emilykoh (@emilykoh) on CodePen.

 

*본 게시물은 학습을 위한 개인 기록용입니다.

잘못되었거나 더 효율적인 방법이 있다면 공유 부탁드립니다! 감사합니다.

 

+ Recent posts