Code tạo đồng hồ đếm ngược html đơn giản

Chào mừng anh em đến với Cam Ranh Media. Hôm nay, mình xin chia sẽ các tạo tạo đồng hồ đếm ngược đơn giản. Phù hợp cho những bạn nào event sự kiện hàng tuần trên website. Hãy tham khảo cách làm bên dưới nhé!

Quan tâm nhiều: Vô hiệu hóa các thông báo Update trên WordPress

Code tạo đồng hồ đếm ngược html đơn giản

Đồng hồ đếm ngược – Countdown Timer được sử dụng khá phổ biến hiện nay. Dùng để mô tả đếm ngược thời gian Grand Open hay ra mắt một website, sự kiện hay sản phẩm. Đồng hồ đếm ngược còn được các website thương mai điện tử như Shopee, Lazada áp dụng cho các khung giờ flash sale. Các website chèn vào sản phẩm hiện thị thời gian khuyến mãi còn được áp dụng.

Hướng dẫn xây dựng đồng hồ đếm ngược với Javascript

Cũng như những bài hướng dẫn khác. Mình cần chuẩn bị các mục như sau:

+ CSS

+ Js

+ Html

Bước 1: Chuẩn bị CSS

#countdown{
    width: 465px;
    height: 160px;
    text-align: center;
    background: #222;
    background-image: -webkit-linear-gradient(top, #222, #333, #333, #222); 
    background-image:    -moz-linear-gradient(top, #222, #333, #333, #222);
    background-image:     -ms-linear-gradient(top, #222, #333, #333, #222);
    background-image:      -o-linear-gradient(top, #222, #333, #333, #222);
    border: 1px solid #111;
    border-radius: 5px;
    box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.6);
    margin: auto;
    padding: 24px 0;
    position: sticky;
  top: 0; bottom: 0; left: 0; right: 0;
}

#countdown:before{
    content:"";
    width: 8px;
    height: 65px;
    background: #444;
    background-image: -webkit-linear-gradient(top, #555, #444, #444, #555); 
    background-image:    -moz-linear-gradient(top, #555, #444, #444, #555);
    background-image:     -ms-linear-gradient(top, #555, #444, #444, #555);
    background-image:      -o-linear-gradient(top, #555, #444, #444, #555);
    border: 1px solid #111;
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
    display: block;
    position: absolute;
    top: 48px; left: -10px;
}

#countdown:after{
    content:"";
    width: 8px;
    height: 65px;
    background: #444;
    background-image: -webkit-linear-gradient(top, #555, #444, #444, #555); 
    background-image:    -moz-linear-gradient(top, #555, #444, #444, #555);
    background-image:     -ms-linear-gradient(top, #555, #444, #444, #555);
    background-image:      -o-linear-gradient(top, #555, #444, #444, #555);
    border: 1px solid #111;
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
    display: block;
    position: absolute;
    top: 48px; right: -10px;
}

#countdown #tiles{
    position: relative;
    z-index: 1;
}

#countdown #tiles > span{
    width: 90px;
    max-width: 90px;
    font: bold 42px 'Droid Sans', Arial, sans-serif;
    text-align: center;
    color: #111;
    background-color: #ddd;
    background-image: -webkit-linear-gradient(top, #bbb, #eee); 
    background-image:    -moz-linear-gradient(top, #bbb, #eee);
    background-image:     -ms-linear-gradient(top, #bbb, #eee);
    background-image:      -o-linear-gradient(top, #bbb, #eee);
    border-top: 1px solid #fff;
    border-radius: 3px;
    box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7);
    margin: 0 7px;
    padding: 18px 0;
    display: inline-block;
    position: relative;
}

#countdown #tiles > span:before{
    content:"";
    width: 100%;
    height: 13px;
    background: #111;
    display: block;
    padding: 0 3px;
    position: absolute;
    top: 41%; left: -3px;
    z-index: -1;
}

#countdown #tiles > span:after{
    content:"";
    width: 100%;
    height: 1px;
    background: #eee;
    border-top: 1px solid #333;
    display: block;
    position: absolute;
    top: 48%; left: 0;
}

#countdown .labels{
    width: 100%;
    height: 25px;
    text-align: center;
    position: absolute;
    bottom: 8px;
}

#countdown .labels li{
    width: 102px;
    font: bold 15px 'Droid Sans', Arial, sans-serif;
    color: #f47321;
    text-shadow: 1px 1px 0px #000;
    text-align: center;
    text-transform: uppercase;
    display: inline-block;
}

@media only screen and (max-width: 480px){
#countdown{
    width: 250px;
    height: 163px;
}
    #countdown .labels li {
    width: auto;
    font: bold 15px 'Droid Sans', Arial, sans-serif;
    color: #f47321;
    text-shadow: 1px 1px 0px #000;
    text-align: center;
    text-transform: uppercase;
    display: inline-block;
}
#countdown .labels{
    height:50px;
}
#countdown #tiles > span{
    width: 29px;
    max-width: 29px;
    font: bold 19px 'Droid Sans', Arial, sans-serif;
    
}
}

Bước 2: Chuẩn bị Js

var target_date = new Date().getTime() + (1000*3600*48); // set the countdown date
var days, hours, minutes, seconds; // variables for time units

var countdown = document.getElementById("tiles"); // get tag element

getCountdown();

setInterval(function () { getCountdown(); }, 1000);

function getCountdown(){

    // find the amount of "seconds" between now and target
    var current_date = new Date().getTime();
    var seconds_left = (target_date - current_date) / 1000;

    days = pad( parseInt(seconds_left / 86400) );
    seconds_left = seconds_left % 86400;
         
    hours = pad( parseInt(seconds_left / 3600) );
    seconds_left = seconds_left % 3600;
          
    minutes = pad( parseInt(seconds_left / 60) );
    seconds = pad( parseInt( seconds_left % 60 ) );

    // format countdown string + set tag value
    countdown.innerHTML = "<span>" + days + "</span><span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>"; 
}

function pad(n) {
    return (n < 10 ? '0' : '') + n;
}

Bước 3: Gọi html

 <div id="countdown">
  <div id='tiles'></div>
   <div class="labels">
    <li>Ngày</li>
    <li>Giờ</li>
    <li>Phút</li>
    <li>Giây</li>
  </div>
</div>

Tổng 3 bước trên mình có bộ code hoàn chỉnh như dưới đây

<style type="text/css">
          
#countdown{
    width: 465px;
    height: 160px;
    text-align: center;
    background: #222;
    background-image: -webkit-linear-gradient(top, #222, #333, #333, #222); 
    background-image:    -moz-linear-gradient(top, #222, #333, #333, #222);
    background-image:     -ms-linear-gradient(top, #222, #333, #333, #222);
    background-image:      -o-linear-gradient(top, #222, #333, #333, #222);
    border: 1px solid #111;
    border-radius: 5px;
    box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.6);
    margin: auto;
    padding: 24px 0;
    position: sticky;
  top: 0; bottom: 0; left: 0; right: 0;
}

#countdown:before{
    content:"";
    width: 8px;
    height: 65px;
    background: #444;
    background-image: -webkit-linear-gradient(top, #555, #444, #444, #555); 
    background-image:    -moz-linear-gradient(top, #555, #444, #444, #555);
    background-image:     -ms-linear-gradient(top, #555, #444, #444, #555);
    background-image:      -o-linear-gradient(top, #555, #444, #444, #555);
    border: 1px solid #111;
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
    display: block;
    position: absolute;
    top: 48px; left: -10px;
}

#countdown:after{
    content:"";
    width: 8px;
    height: 65px;
    background: #444;
    background-image: -webkit-linear-gradient(top, #555, #444, #444, #555); 
    background-image:    -moz-linear-gradient(top, #555, #444, #444, #555);
    background-image:     -ms-linear-gradient(top, #555, #444, #444, #555);
    background-image:      -o-linear-gradient(top, #555, #444, #444, #555);
    border: 1px solid #111;
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
    display: block;
    position: absolute;
    top: 48px; right: -10px;
}

#countdown #tiles{
    position: relative;
    z-index: 1;
}

#countdown #tiles > span{
    width: 90px;
    max-width: 90px;
    font: bold 42px 'Droid Sans', Arial, sans-serif;
    text-align: center;
    color: #111;
    background-color: #ddd;
    background-image: -webkit-linear-gradient(top, #bbb, #eee); 
    background-image:    -moz-linear-gradient(top, #bbb, #eee);
    background-image:     -ms-linear-gradient(top, #bbb, #eee);
    background-image:      -o-linear-gradient(top, #bbb, #eee);
    border-top: 1px solid #fff;
    border-radius: 3px;
    box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7);
    margin: 0 7px;
    padding: 18px 0;
    display: inline-block;
    position: relative;
}

#countdown #tiles > span:before{
    content:"";
    width: 100%;
    height: 13px;
    background: #111;
    display: block;
    padding: 0 3px;
    position: absolute;
    top: 41%; left: -3px;
    z-index: -1;
}

#countdown #tiles > span:after{
    content:"";
    width: 100%;
    height: 1px;
    background: #eee;
    border-top: 1px solid #333;
    display: block;
    position: absolute;
    top: 48%; left: 0;
}

#countdown .labels{
    width: 100%;
    height: 25px;
    text-align: center;
    position: absolute;
    bottom: 8px;
}

#countdown .labels li{
    width: 102px;
    font: bold 15px 'Droid Sans', Arial, sans-serif;
    color: #f47321;
    text-shadow: 1px 1px 0px #000;
    text-align: center;
    text-transform: uppercase;
    display: inline-block;
}

@media only screen and (max-width: 480px){
#countdown{
width: 250px; height: 163px;
} #countdown .labels li { width: auto; font: bold 15px 'Droid Sans', Arial, sans-serif; color: #f47321; text-shadow: 1px 1px 0px #000; text-align: center; text-transform: uppercase; display: inline-block; } #countdown .labels{ height:50px; } #countdown #tiles > span{ width: 29px; max-width: 29px; font: bold 19px 'Droid Sans', Arial, sans-serif; } } </style> <div id="countdown"> <div id='tiles'></div> <div class="labels"> <li>Ngày</li> <li>Giờ</li> <li>Phút</li> <li>Giây</li> </div> </div> <script language="javascript"> var target_date = new Date().getTime() + (1000*3600*48); // set the countdown date var days, hours, minutes, seconds; // variables for time units var countdown = document.getElementById("tiles"); // get tag element getCountdown(); setInterval(function () { getCountdown(); }, 1000); function getCountdown(){ // find the amount of "seconds" between now and target var current_date = new Date().getTime(); var seconds_left = (target_date - current_date) / 1000; days = pad( parseInt(seconds_left / 86400) ); seconds_left = seconds_left % 86400; hours = pad( parseInt(seconds_left / 3600) ); seconds_left = seconds_left % 3600; minutes = pad( parseInt(seconds_left / 60) ); seconds = pad( parseInt( seconds_left % 60 ) ); // format countdown string + set tag value countdown.innerHTML = "<span>" + days + "</span><span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>"; } function pad(n) { return (n < 10 ? '0' : '') + n; } </script>

=> Copy toàn bộ code trên dán vào vị trị mà bạn muốn nó hiển thị. Bộ code này đã được mình cấu hình responsive tương thích mọi giao diện rồi nhé.

Xem chi tiết
THÔNG TIN THÊM

Quảng cáo

Nhận Mã Giảm Giá Hosting

Tư Vấn Dịch Vụ

CÓ THỂ BẠN QUAN TÂM

Cách điều trị mụn tận gốc từ bên trong không tái phát

...

Phương pháp công nghệ trị mụn tốt nhất hiện nay

...

Spa mỹ viện điều trị mụn uy tín giá rẻ nhất hiện nay

...

Top 5 cách điều trị mụn hiệu quả tại nhà

...

Đánh giá Hosting TinoHost chất lượng năm 2021?

...

Bạn cần tìm người thiết kế website ở Khánh Hòa

...

Review TINOHOST có thực sự tốt như lời đồn?

...

Review sơn Dulux với Jotun loại nào tốt hơn

...

Có nên phun môi Collagen không?

...
Chào bạn! Bạn cần tư vấn hãy gửi tin nhắn nhé!