Vui lòng liên hệ chúng tôi qua Zalo Contact

Hướng dẫn tạo Đồng Hồ Chạy Bằng Kim và Lấy Giờ Hiện Tại Bằng JavaScript

Chào mừng các bạn đến với Tricker Channel! Trong bài viết hôm nay, chúng ta sẽ cùng nhau khám phá cách tạo đồng hồ chạy bằng kim và lấy giờ hiện tại bằng ngôn ngữ lập trình JavaScript. Điều này không chỉ giúp bạn hiểu rõ hơn về cách thức làm việc của đồng hồ, mà còn nâng cao kỹ năng lập trình của bạn.

Mục lục bài viết

Chuẩn Bị Môi Trường

Trước tiên, chúng ta cần tạo một trang web cơ bản để chứa đồng hồ. Đảm bảo bạn đã có một trình duyệt web và một trình soạn thảo mã nguồn, ví dụ như Visual Studio Code.

Cách tạo Đồng Hồ Chạy Bằng Kim và Lấy Giờ Hiện Tại Bằng JavaScript

Sau khi đã tạo môi trường, bạn hãy copy toàn bộ code bên dưới đây để thêm vào bất kỳ vị trí nào mà bạn mong muốn trong trang web của bạn.
<style>
/*<![CDATA[*/
#container{width:100%;height:100vh;display:flex;justify-content:center;align-items:center}
#clock{width:400px;height:400px;border:10px solid #333;border-radius:50%;position:relative;background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,0.3)}
.hand{position:absolute;transform-origin:50% 100%;background-color:black;z-index:2}
.hand::after{content:'';position:absolute;width:6px;height:20px;background-color:black;top:0;left:50%;transform:translateX(-50%);border-radius:3px 3px 0 0;z-index:-1}
#hourHand{height:80px;width:5px;z-index:2}
#minuteHand{height:110px;width:3px}
#secondHand{height:130px;width:2px;background-color:red}
.hourHand::after{height:15px}
.hour-number{position:absolute;font-size:35px;font-weight:bold;font-family:'Arial',sans-serif;color:#000;z-index:1;transform: translate(-50%, -50%);}
#centerDot{width:12px;height:12px;background-color:black;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3}
/*]]>*/
</style>
<div id="container">
<div id='clock'>
  <div id='centerDot'/>
</div>
</div>
<script>
  //<![CDATA[
  function updateClock() {
    const clock = document.getElementById('clock');
    const hourHand = document.getElementById('hourHand');
    const minuteHand = document.getElementById('minuteHand');
    const secondHand = document.getElementById('secondHand');
    const now = new Date();
    const hours = now.getHours() % 12;
    const minutes = now.getMinutes();
    const seconds = now.getSeconds();
    const hourAngle = (hours * 30) + (minutes / 60 * 30);
    const minuteAngle = minutes * 6;
    const secondAngle = seconds * 6;
    hourHand.style.transform = `rotate(${hourAngle}deg)`;
    minuteHand.style.transform = `rotate(${minuteAngle}deg)`;
    secondHand.style.transform = `rotate(${secondAngle}deg)`;
  }
  document.addEventListener('DOMContentLoaded', () => {
    const clock = document.getElementById('clock');
    const hourHand = document.createElement('div');
    const minuteHand = document.createElement('div');
    const secondHand = document.createElement('div');
    hourHand.id = 'hourHand';
    minuteHand.id = 'minuteHand';
    secondHand.id = 'secondHand';
    hourHand.className = 'hand';
    minuteHand.className = 'hand';
    secondHand.className = 'hand';
    clock.appendChild(hourHand);
    clock.appendChild(minuteHand);
    clock.appendChild(secondHand);
    // Tùy chỉnh vị trí kim và đồng hồ
    hourHand.style.left = '50%';
    hourHand.style.bottom = '50%';
    minuteHand.style.left = '50%';
    minuteHand.style.bottom = '50%';
    secondHand.style.left = '50%';
    secondHand.style.bottom = '50%';
    // Thêm số từ 1 đến 12
    for (let i = 1; i <= 12; i++) {
      const hourNumber = document.createElement('div');
      hourNumber.className = 'hour-number';
      hourNumber.innerText = i.toString();
      const angle = i * 30 - 90;
      const posX = Math.cos(angle * (Math.PI / 180)) * 150 + 200;
      const posY = Math.sin(angle * (Math.PI / 180)) * 150 + 200;
      hourNumber.style.left = `${posX - 8}px`;
      hourNumber.style.top = `${posY - 10}px`;
      clock.appendChild(hourNumber);
    }
    // Thêm chấm tròn ở điểm nối
    const centerDot = document.getElementById('centerDot');
    clock.appendChild(centerDot);
    setInterval(updateClock, 1000);
    updateClock();
  });
  //]]>
</script>
Demo Đồng hồ

Kết Luận

Với bài viết này, bạn đã thành công tạo ra một đồng hồ chạy bằng kim đơn giản bằng JavaScript. Hy vọng bạn đã thấy thú vị và hữu ích cho sự phát triển kỹ năng lập trình của mình. Hãy thử nghiệm và tinh chỉnh mã nguồn để tạo ra những hiệu ứng đồng hồ độc đáo theo ý tưởng của bạn!

Facebook: Dịch Vụ Mạng Xã Hội Đà Nẵng
Zalo: Dịch Vụ Đà Nẵng
Phone: 0333.110304
Gmail: mxhdn.xyz@gmail.com
Thanh toán: Ngân hàng, thẻ cào siêu rẻ, Momo, ViettelPay, card + 35% phí,...

Cookie Consent
Chúng tôi cung cấp cookie trên trang web này để phân tích lưu lượng truy cập, ghi nhớ tùy chọn của bạn và tối ưu hóa trải nghiệm của bạn.
Oops!
Có vẻ như đã xảy ra sự cố với kết nối internet của bạn. Vui lòng kết nối với internet và truy cập lại.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Refresh